一、需求: 接受键盘录入用户名与密码,如果用户名已经存在集合中,那么就是视为重复元素,不允许添加到HashSet中。
二、代码:
package mfq.set;
import java.util.HashSet;
import java.util.Scanner;
class User {
private String userName;
private String password;
public User(String userName, String password) {
super();
this.userName = userName;
this.password = password;
}
public int hashCode() {
return userName.hashCode();
}
public boolean equals(Object obj) {
User user = (User)obj;
return this.userName.equals(user.userName);
}
public String toString() {
return "User [userName=" + userName + ", password=" + password + "]";
}
}
public class Demo2 {
public static void main(String[] args) {
HashSet hs = new HashSet();
while(true){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入用户名:");
String userName = scanner.next();
System.out.println("请输入密码:");
String password = scanner.next();
User user = new User(userName, password);
if(hs.add(user)){
/*
体现了Set集合的特性:不允许重复添加
体现了HashSet集合添加元素的特性,先比较HashCode()方法,在比较equals()方法
*/
System.out.println("注册成功!");
System.out.println("已注册用户有"+hs);
}
else{
System.out.println("用户名重复请重新输入!");
}
}
}
}
三、运行效果: