第十四天:一个map集合存储数据的登录方式!

来源:互联网 发布:显卡驱动软件 编辑:程序博客网 时间:2024/05/04 09:32
1.验证方式:
package day02;import java.util.ArrayList;import java.util.Collection;import java.util.HashMap;import java.util.List;import java.util.Map;public class Accounter {Map<String,User> users=new HashMap<String,User>();public User Login(String email,String pwd) throws EmailOrPwdException{User u=users.get(email);if(u==null){throw new EmailOrPwdException("用户名不存在!");}if(!u.getPwd().equals(pwd)){throw new EmailOrPwdException("用户名或者密码错误!");}return u;}public User regist(String email,String pwd) throws EmailOrPwdException{int id=1;if(users.containsKey(email)){throw new EmailOrPwdException("用户名已经存在,请重新注册!");}User u=new User(id++,email,pwd);users.put(email, u);return u;}public List<User> finaAll(){//Set<Entry<String,User>> set=users.entrySet();Collection<User> coll=users.values();ArrayList<User> list=new ArrayList<User>(coll);return list;}}

2.user类

package day02;public class User {private int id;private String email;private String pwd;public User() {// TODO Auto-generated constructor stub}/** * @param id * @param email * @param pwd */public User(int id, String email, String pwd) {this.id = id;this.email = email;this.pwd = pwd;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + ((email == null) ? 0 : email.hashCode());result = prime * result + id;result = prime * result + ((pwd == null) ? 0 : pwd.hashCode());return result;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;User other = (User) obj;if (email == null) {if (other.email != null)return false;} else if (!email.equals(other.email))return false;if (id != other.id)return false;if (pwd == null) {if (other.pwd != null)return false;} else if (!pwd.equals(other.pwd))return false;return true;}@Overridepublic String toString() {return "User [id=" + id + ", email=" + email + ", pwd=" + pwd + "]";}}
Demo测试

package day02;import java.util.Scanner;public class Demo {@SuppressWarnings({ "resource", "unused" })public static void main(String[] args) {Scanner s=new Scanner(System.in);Accounter counter=new Accounter();while(true){System.out.println("====注册系统=====");System.out.println("||1.注册用回||");System.out.println("||2.登录账号||");System.out.println("||3.查看用户||");System.out.println("||4.退出账号||");System.out.println("=================");System.out.println("请输出您要进行的操作:");int a=s.nextInt();if(a==1){System.out.println("请输入用户名+密码:");System.out.println("格式:账号+密码");String str=s.next();String[] message=str.split("[+,]");User u;try { u=counter.regist(message[0], message[1]);System.out.println("注册成功,请登录!");} catch (EmailOrPwdException e) {// TODO Auto-generated catch blockSystem.out.println("用户名已被注册,请重新注册!");continue;}System.out.println(counter.finaAll());System.out.println(u);}else if(a==2){
System.out.println("请输入账号+密码:");String str=s.next();String[] str1=str.split("[+,]");User u;try { u=counter.Login(str1[0], str1[1]); System.out.println("登录成功!");} catch (EmailOrPwdException e) {// TODO Auto-generated catch blockSystem.out.println("账号或者密码错误!");continue;}}else if(a==3){System.out.println(counter.finaAll());}else if(a==4){System.out.println("退出系统!");break;}else {System.out.println("输入有误,请再次输入!");continue;}}}}}
自定义异常部分
package day02;public class EmailExistException extends Exception{public EmailExistException(){super();}public EmailExistException(String message,Throwable cause){super(message,cause);}public EmailExistException(String message){super(message);}public EmailExistException(Throwable cause){super(cause);}}@SuppressWarnings("serial")class EmailOrPwdException extends Exception{public EmailOrPwdException(){super();}public EmailOrPwdException(String message,Throwable cause){    super(message,cause);}public EmailOrPwdException(String message){super(message);}public EmailOrPwdException(Throwable cause){super(cause);}}