编写一个程序获取10个1至指定数值(n)之间的随机整数,要求如下:• 要求随机数不能重复。n值由键盘输入。• 在HashSet集合中添加三个Person对象,把姓名相同的人当做同一个人,禁止重复添加。提示:Person类中定义name和age属性,重写hashCode()方法和equals()方法,针对Person类的name属性进行比较,如果name相同,hashCode()方法的返回值相同,equals方法返回true。
package 第六章实验;
import java.util.*;
public class 实验四 {
public static void main(String[] args) {
Random r=new Random();
Scanner sc=new Scanner(System.in);
int n;
System.out.println("输入要指定的数(要大于10):");
n=sc.nextInt();
LinkedHashSet lhs=new LinkedHashSet();
while(true) {
int num=r.nextInt(n)+1;
if(lhs.size()<=10) {
lhs.add(num);
}else {
break;
}
}
System.out.println(lhs);
HashSet hs=new HashSet();
Person1 p1=new Person1("小明",18);
Person1 p2=new Person1("jack",19);
Person1 p3=new Person1("jack",19);
hs.add(p1);
hs.add(p2);
hs.add(p3);
System.out.println(hs);
}
}
class Person1{
private String name;
private int age;
public Person1(String name,int age){
this.name=name;
this.age=age;
}
@Override
public String toString() {
return name+":"+age;
}
@Override
public int hashCode() {
return name.hashCode();
}
@Override
public boolean equals(Object obj) {
if(this==obj) {
return true;
}
if(!(obj instanceof Person1)) {
return false;
}
Person1 p=(Person1)obj;
boolean b = this.name.equals(p.name);
return b;
}
}