笔记

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值