笔记

简介: 笔记

集合框架-Collection

一.List接口:有序的集合,数据可以重复,长度可变,可以动态的增加和修改

1.1 ArrayList —可变长度的数组!

1.扩容的时候按照以前长度的一半进行增长:

0001(1)->0000.1(0.5)

int newCapacity = oldCapacity + (oldCapacity >> 1);

int newCapacity = oldCapacity + (oldCapacity/2);

2.添加数据

3.修改数据

4.查询数据

5.判定是否存在

package org.softeem.homework;
import java.util.Arrays;
import java.util.Scanner;
import java.util.regex.Pattern;
/**
 */
public class RegistQueryDemo {
  public static void main(String[] args) {
    System.out.println("========珍爱网=========");
    //控制台对象
    Scanner sc=new Scanner(System.in);
    //保存数组的数组
    User[] users=init();
    //循环去操作这个数组的CRUD(增删改查)
    while(true){
      System.out.println("1-注册;2-查询指定用户;3-查询全部用户;4-修改用户信息...");
      //得到用户输入的业务功能序号
      int index=findInput(sc);
      //根据输入的index进行业务的映射
      switch(index){
        case 1:
          users=regist(users,sc);break;
        case 2:
          findByNickname(users,sc);break;
        default:
          System.out.println("您输入的功能正在完善中...");
      }
    }
  }
  //封装查询指定用户的信息
  private static void findByNickname(User[] users,Scanner sc){
    System.out.println("请输入您中意的佳丽或者靓仔的名字...");
    String name=sc.next();
    //迭代判定
    for(User u:users){
      //System.out.println(u);
      if(u.getNickname().equalsIgnoreCase(name)){
        System.out.println("您中意的用户信息:"+u);
        return;
      }
    }
    System.out.println("您查询的用户不存在,,,");
  }
  //封装用户的注册功能
  private static User[] regist(User[] users,Scanner sc){
    System.out.println("尊敬的嘉宾,欢迎来到珍爱网大型交友网站注册页面--");
    String username;
    String pwd;
    String nickname;
    String gendar;
    String age;
    String phone;
    //属性判定
    do{
      System.out.println("请输入您的用户名:6-15位数字,字母,下划线");
      username=sc.next();
    }while(!Pattern.matches("^[a-zA-Z0-9_]{6,15}$", username));
    //密码
    do{
      System.out.println("请输入您的密码:6-15位数字,字母");
      pwd=sc.next();
    }while(!Pattern.matches("^[a-zA-Z0-9]{6,15}$", pwd));
    //昵称
    do{
      System.out.println("请输入您的昵称:2-8位中文");
      nickname=sc.next();
    }while(!Pattern.matches("^[\u4e00-\u9fa5]{2,8}$", nickname));
    //性别
    do{
      System.out.println("请输入您的性别: f(女)或者m(男)");
      gendar=sc.next();
    }while(!Pattern.matches("^[mf]$", gendar));
    //年龄
    do{
      System.out.println("请输入您的年龄:未满18岁不得注册");
      age=sc.next();
    }while(!Pattern.matches("^([2-8]\\d)|18|19$", age));
    //电话
    do{
      System.out.println("请输入您的手机号:11位手机号");
      phone=sc.next();
      //13 14 15 17 18 
    }while(!Pattern.matches("^(13|14|15|17|18)[0-9]{9}$", phone));
    //构件对象
    User u=new User(username, pwd, nickname, gendar.charAt(0), 
        Integer.parseInt(age), phone);
    //扩容数组
    users=Arrays.copyOf(users, users.length+1);
    //赋值
    users[users.length-1]=u;
    System.out.println(Arrays.toString(users));
    return users;
  }
  //封装用户输入选择业务的序号
  private static int findInput(Scanner sc){
    //1.得到用户输入的字符串
    String input=sc.next();
    //2.使用正则表达式去解析
    boolean flag=Pattern.matches("\\d", input);
    //3.判定
    if(flag){
      return Integer.parseInt(input);
    }else{
      System.out.println("输入不合法!,请重新输入!~");
      return 0;
    }
  }
  //封装数组初始化的业务
  private static User[] init(){
    User[] users=new User[1];
    //构建管理员用户
    User u=new User();
    u.setUsername("suyan");
    u.setPwd("123456");
    u.setNickname("南湖苏大帅");
    u.setPhone("13801100110");
    u.setAge(18);
    u.setGendar('m');// 1/0  m/f
    //赋值
    users[0]=u;
    return users;
  }
}
相关文章
|
移动开发 JavaScript 前端开发
WebAPIs-第04天笔记(二)
WebAPIs-第04天笔记(二)
131 0
WebAPIs-第04天笔记(二)
|
JavaScript 前端开发
WebAPIs-第03天笔记(一)
WebAPIs-第03天笔记
80 0
WebAPIs-第03天笔记(一)
|
存储 移动开发 开发框架
WebAPIs-第07天笔记(一)
WebAPIs-第07天笔记
140 0
WebAPIs-第07天笔记(一)
|
JavaScript 前端开发 内存技术
WebAPIs-第04天笔记(一)
WebAPIs-第04天笔记
164 0
WebAPIs-第04天笔记(一)
|
存储 安全 编译器
C++系列笔记(八)
C++系列笔记(八)
|
编译器 C++
C++系列笔记(二)
C++系列笔记(二)
|
C++
学习C++笔记421
C++ Web 编程
98 0
|
C++
学习C++笔记374
C++ 模板
84 0
|
C++
学习C++笔记371
C++ 模板
82 0
|
数据安全/隐私保护 C++
学习C++笔记287
C++ 继承
79 0