Java HashSet集合存储遍历学生对象代码实例
一、背景介绍
在Java中,集合是一种非常重要的数据类型,也是面试中必考的知识点之一。HashSet是Java集合框架中的一种集合类型,它可以存储不重复的元素,非常适合用来存储一组学生对象。本文将详细讲解如何使用Java HashSet集合存储和遍历学生对象的过程和代码实例。
二、问题分析
在解决问题之前,我们需要明确以下几个问题:
-
如何定义学生对象?
-
如何创建HashSet对象?
-
如何将学生对象添加到HashSet中?
-
如何遍历HashSet中的学生对象?
三、代码实现
1. 定义学生对象
class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public String toString() {
return name + "(" + age + "岁)";
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof Student)) {
return false;
}
Student s = (Student) obj;
return Objects.equals(name, s.name) &&
Objects.equals(age, s.age);
}
}
上述代码可以定义一个学生对象,包含学生姓名和年龄两个属性,并且重写hashCode()和equals()方法,用于判断HashSet中的元素是否重复。
2. 创建HashSet对象
Set<Student> students = new HashSet<>();
上述代码可以创建一个存储学生对象的HashSet。
3. 将学生对象添加到HashSet中
students.add(new Student("张三", 20));
students.add(new Student("李四", 21));
students.add(new Student("王五", 22));
上述代码可以将三个学生对象添加到HashSet中。
4. 遍历HashSet中的学生对象
for (Student s : students) {
System.out.println(s);
}
上述代码可以遍历HashSet中的学生对象,并打印输出他们的姓名和年龄。
四、示例说明
示例1:添加重复元素
Set<Student> students = new HashSet<>();
students.add(new Student("张三", 20));
students.add(new Student("李四", 21));
students.add(new Student("王五", 22));
students.add(new Student("李四", 21));
students.add(new Student("李四", 22));
for (Student s : students) {
System.out.println(s);
}
输出结果如下:
李四(22岁)
张三(20岁)
王五(22岁)
上述代码中添加了一个重复的学生对象和一个年龄不同的对象,但HashSet集合只会存储不重复的元素,因此只有三个学生对象被添加到了HashSet中,并且年龄相同的李四对象只被添加了一次。
示例2:遍历空集合
Set<Student> students = new HashSet<>();
for (Student s : students) {
System.out.println(s);
}
输出结果为空,因为HashSet中没有任何元素。
五、总结
本文介绍了如何使用Java HashSet集合存储和遍历学生对象的过程和代码实例。需要注意的是,HashSet集合是无序的,因此遍历输出的顺序可能会与添加顺序不同。此外,为了确保HashSet中的元素不重复,需要重写hashCode()和equals()方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java HashSet集合存储遍历学生对象代码实例 - Python技术站