集合框架-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; } }