需求:使用集合实现注册登陆功能,
1: 提示用户选择功能, A(注册) B(登陆) 。 要求: 功能选择 的时候要忽略大小写。
2:注册:
1. 提示用户输入注册的账号(数字)与密码,如果输入的id号已经存在集合中,提示用户重新输入。
2. 注册完毕之后,把集合中的所有用户信息打印出来。(使用:toArrry()方法)
3:登陆:
提示用户输入登陆的账号与
写的比较简粗糙,慢慢进步。
package com.itcsat.object;
import java.awt.List;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.Scanner;
class User{
long id;
String code;
public String getCode() {
return code;
}
public User(long id, String code) {
// TODO Auto-generated constructor stub
this.id = id;
this.code = code;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "{账号:" + this.id + " 密码:" + this.code+ "}";
}
@Override
public boolean equals(Object obj) {
// TODO Auto-generated method stub
User u = (User) obj;
return this.id == u.id;
}
@Override
public int hashCode() {
// TODO Auto-generated method stub
return (int) this.id;
}
}
public class Demo26 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Collection users = new ArrayList();
users.add(new User(123, "pyy"));
users.add(new User(234, "jyj"));
users.add(new User(345, "ydq"));
users.add(new User(456, "xyz"));
choose(users);
}
//注册
public static void register(Collection users){
boolean flag = true;
while(flag){
Scanner sc1 = new Scanner(System.in);
System.out.println("请输入注册账号:");
long id = sc1.nextLong();//提示输入注册账号
//判断的时候 用户还没有code 所以创建的用户code 为null
if (users.contains(new User(id, null))) {//判断输入的账号用户是否存在 这里比较的是用户的ID 因为我们重写课equals方法
System.out.println("您输入的账号已存在!请重新输入!");
}else {
//账号不存在 就可以继续输入密码
System.out.println("请输入注册密码:");
Scanner sc2 = new Scanner(System.in);
String code = sc2.nextLine();
//账号 密码都有了 就可以将该用户添加到集合中了
users.add(new User(id, code));
flag = false;
System.out.println("恭喜您注册成功!");
//使用toArray 打印集合元素
Object[] arr = users.toArray(); //将集合中的元素 返回到一个obj的数组中
System.out.println("所有成功注册用户为:" + Arrays.toString(arr));
}
}
}
//登录
public static void login(Collection users){
boolean flag = true;
while(flag){
Scanner sc1 = new Scanner(System.in);
System.out.println("请输入登录账号:");
long id = sc1.nextLong();
//先判断用户id 不存在的话 直接不允许登录
if(users.contains(new User(id, null))){
System.out.println("请输入登录密码:");
Scanner sc2 = new Scanner(System.in);
String code = sc2.nextLine();
//遍历集合 判断密码
Iterator it = users.iterator();
while(it.hasNext()){
User u = (User) it.next();
if(code.equals(u.getCode()) ){
flag = false;
System.out.println("登录成功,欢迎来到魔域世界!");
break;
}
}
if(flag){
System.out.println("密码错误,请重新输入!");
}
}else {
System.out.println("用户不存在,请重新输入!");
}
}
}
//提示功能
public static void choose(Collection users){
boolean flag = true;
while(flag){
System.out.println("选择功能:A:注册 B:登录");
Scanner sc = new Scanner(System.in);
String c = sc.nextLine();
if("A".equals(c.toUpperCase())){
flag = false;
//注册方法
register(users);
}else if("B".equals(c.toUpperCase())){
flag = false;
//登录方法
login(users);
}else {
System.out.println("选择错误,请重新选择!");
}
}
}
}
密码,如果账号与密码这个用户已经存在集合中,那么登陆成功,否则登陆失败。