Java HashSet集合存储遍历学生对象代码实例

网友投稿 234 2022-12-10


Java HashSet集合存储遍历学生对象代码实例

由于Set集合是不存储重复元素的,所以在做此案例时,如果我正常添加一个重复元素是什么结果呢?

public class HashSetDemo {

public static void main(String[] args) {

//创建HashSet集合对象

HashSet hashSet = neEJeuIIMw HashSet();

//创建学生对象

Student s1 = new Student("爱学习", 21);

Student s2http:// = new Student("爱java", 22);

Student s3 = new Student("坚持不懈", 23);

Student s4 = new Student("爱Java", 22);

//把学生添加到集合

hashSet.add(s1);

hashSet.add(s2);

hashSet.add(s3);

hashSet.add(s4);

//遍历集合(增强for循环)

for (Student s : hashSet) {

System.out.println(s.getName() + "," + s.getAge());

}

}

}

运行结果:

通过运行结果,我们发现,http://重复的元素仍然被添加进去,是什么原因呢? 根据源码分析和HashSet底层数据结构可以知道,如果两个对象的哈希值相同(hashCode方法),并且对象的内容也相同(equals方法),是不会存储在哈希表的。所以我们需要在被存储的对象类中重写hashCode方法和equals方法,来解决添加了重复元素的问题。

在对象类中重写hashCode方法和equals方法后(自动生成即可)运行上面的代码,运行结果:

可见,重复的元素未被添加到集合。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java List集合方法及遍历过程代码解析
下一篇:Java Collection集合遍历运行代码实例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~