久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

Java HashSet集合存儲遍歷學生對象代碼實例

瀏覽:125日期:2022-09-03 09:08:58

Java HashSet集合存儲遍歷學生對象代碼實例

由于Set集合是不存儲重復元素的,所以在做此案例時,如果我正常添加一個重復元素是什么結果呢?

public class HashSetDemo { public static void main(String[] args) { //創(chuàng)建HashSet集合對象 HashSet<Student> hashSet = new HashSet<Student>(); //創(chuàng)建學生對象 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循環(huán)) for (Student s : hashSet) { System.out.println(s.getName() + ',' + s.getAge()); } }}

運行結果:

Java HashSet集合存儲遍歷學生對象代碼實例

通過運行結果,我們發(fā)現(xiàn),重復的元素仍然被添加進去,是什么原因呢? 根據(jù)源碼分析和HashSet底層數(shù)據(jù)結構可以知道,如果兩個對象的哈希值相同(hashCode方法),并且對象的內容也相同(equals方法),是不會存儲在哈希表的。所以我們需要在被存儲的對象類中重寫hashCode方法和equals方法,來解決添加了重復元素的問題。

在對象類中重寫hashCode方法和equals方法后(自動生成即可)運行上面的代碼,運行結果:

Java HashSet集合存儲遍歷學生對象代碼實例

可見,重復的元素未被添加到集合。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: Java
相關文章:
主站蜘蛛池模板: 东乡| 桓台县| 沧源| 高淳县| 登封市| 娄底市| 阿克陶县| 龙南县| 城步| 古蔺县| 文水县| 许昌市| 岳阳市| 文成县| 五大连池市| 三门县| 松桃| 伊通| 石棉县| 江山市| 高陵县| 垣曲县| 宜川县| 平湖市| 通海县| 永春县| 洛宁县| 巴马| 武平县| 佛山市| 龙泉市| 怀来县| 兴文县| 柘荣县| 四川省| 绿春县| 仙桃市| 商南县| 昔阳县| 宁强县| 合川市|