HashSet是Java中常用的Set集合,向HashSet集合中添加数据对象时,首先会调用对象的hashCode()方法获取哈希码,根据哈希码计算对象的存储位置,如果相应位置上已经有数据对象,则会调用对象的equals()方法判断新加入的对象与现有对象是否重复,如果重复则拒绝加入。为了使用HashSet集合正确存储自定义类的对象,自定义类需要重写equals()方法和hashCode()方法。
编写程序完成以下功能:定义一个学生类Student,属性包括String类型的id、name和int类型的age(id属性字符串内容相同的则认为是同一个学生),为三个属性定义get和set方法。重写equals()方法和hashCode()方法,使得当使用HashSet存储Student类的对象时,id重复的学生对象不能重复添加到集合。输入4个学生类对象的属性值,创建4个Student类对象,将其添加到一个HashSet<Student>集合,遍历集合,输出集合中各个学生的信息。
输入说明:输入4个Student类对象的属性值,每个对象属性值按一行输入,以空格分割。
输出说明:集合中存储的Student类对象的信息,每个对象信息占一行,输出格式为 id:name:age。
输入样例1:
2022001 Tom 19
2022002 Jerry 18
2022003 Eason 20
2022002 Jerry 18
输入样例2:
2022001 Tom 19
2022002 Jerry 18
2022003 Eason 20
2022004 Jerry 18
输出样例1:
2022001:Tom:19岁
2022002:Jerry:18岁
2022003:Eason:20岁
输出样例2:
2022001:Tom:19岁
2022002:Jerry:18岁
2022003:Eason:20岁
2022004:Jerry:18岁文章来源:https://www.toymoban.com/news/detail-714029.html
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
List<String []> list = new ArrayList<>();
HashSet<Student> hs= new HashSet<>();
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < 4; i++) {
String str = scanner.nextLine();
list.add(str.split(" "));
}
//遍历集合
for (String[] strings : list) {
Student s1 = new Student();
s1.setId(strings[0]);
s1.setName(strings[1]);
s1.setAge(Integer.parseInt(strings[2]));
hs.add(s1);
}
for (Student h : hs) {
System.out.println(h.getId() + ":" + h.getName() + ":" + h.getAge() + "岁");
}
}
}
文章来源地址https://www.toymoban.com/news/detail-714029.html
到了这里,关于Java练习题2022-1的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!