本篇内容主要讲解“如何实现Java HashSet集合存储遍历学生对象”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何实现Java HashSet集合存储遍历学生对象”吧!
由于Set集合是不存储重复元素的,所以在做此案例时,如果我正常添加一个重复元素是什么结果呢?
public class HashSetDemo {
public static void main(String[] args) {
//创建HashSet集合对象
HashSet<Student> hashSet = new HashSet<Student>();
//创建学生对象
Student s1 = new Student("爱学习", 21);
Student s2 = 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());
}
}
}
运行结果:
通过运行结果,我们发现,重复的元素仍然被添加进去,是什么原因呢? 根据源码分析和HashSet底层数据结构可以知道,如果两个对象的哈希值相同(hashCode方法),并且对象的内容也相同(equals方法),是不会存储在哈希表的。所以我们需要在被存储的对象类中重写hashCode方法和equals方法,来解决添加了重复元素的问题。
在对象类中重写hashCode方法和equals方法后(自动生成即可)运行上面的代码,运行结果:
可见,重复的元素未被添加到集合。
到此,相信大家对“如何实现Java HashSet集合存储遍历学生对象”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。