使用集合实现注册登陆功能 java
/**
* 需求:使用集合实现注册登陆功能
*
* 1: 提示用户选择功能, A(注册) B(登陆) 要求: 功能选择的时候要忽略大小写。
* 2: 注册:
* 1. 提示用户输入注册的账号(数字)与密码,如果输入的id号已经存在集合中,提示用户重新输入。
* 2. 注册完毕之后,把集合中的所有用户信息打印出来。(使用:toArrry()方法)
* 3: 登陆:
* 提示用户输入登陆的账号与密码,如果输入的账号与密码已经存在集合中,那么登陆成功,否则登录失败。
*
* @author 娟娟
*
*/
package com.xzy;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.Scanner;
// 用户
class User {
int id;
String passward;
@Override
public boolean equals(Object obj) {
User u = (User) obj;
return this.id == u.id;
}
public User(int id, String passward) {
this.id = id;
this.passward = passward;
}
@Override
public String toString() {
return "{账号:" + id + " 密码:" + passward + "}";
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getPassward() {
return passward;
}
public void setPassward(String passward) {
this.passward = passward;
}
}
// 注册
class Regist {
public void regist(Collection<User> al,Scanner sc) {
System.out.println("请输入注册账号:");
int id = sc.nextInt();
if (al.contains(new User(id, null))) {
System.out.println("该账号已存在,请重新输入!");
} else {
System.out.println("请输入注册密码:");
String passward = sc.next();
al.add(new User(id, passward));
System.out.println("恭喜您注册成功!!");
Object[] user = al.toArray();
System.out.println("集合中的用户有:" + Arrays.toString(user));
}
}
}
// 登陆
class Login {
public void log(Collection<User> al,Scanner sc) {
System.out.println("请输入将要登陆的账号:");
int id = sc.nextInt();
if (al.contains(new User(id, null))) {
System.out.println("请输入登陆密码:");
String passward = sc.next();
// 遍历集合
Iterator<User> it = al.iterator();
//标记所查询的用户
boolean flag = false;
while(it.hasNext()) {
User user = it.next();
if(passward.equals(user.getPassward())) {
flag = true;
System.out.println("恭喜您登陆成功!!");
break;
}
}
if(flag == false) {
System.out.println("输入密码有误,请重新输入...");
}
} else {
System.out.println("输入的账号不存在,请重新输入...");
}
}
}
public class Main {
public static void main(String[] args) {
Collection<User> al = new ArrayList<>();
while (true) {
System.out.println("请选择功能:A(注册) B(登陆)");
Scanner sc = new Scanner(System.in);
String st = sc.next();
if ("a".equalsIgnoreCase(st)) {
Regist reg = new Regist();
reg.regist(al,sc);
} else if ("b".equalsIgnoreCase(st)) {
Login log = new Login();
log.log(al,sc);
} else {
System.out.println("输入有误,请重新输入...");
}
}
}
}