国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java HashSet集合存儲(chǔ)遍歷學(xué)生對(duì)象代碼實(shí)例

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

Java HashSet集合存儲(chǔ)遍歷學(xué)生對(duì)象代碼實(shí)例

由于Set集合是不存儲(chǔ)重復(fù)元素的,所以在做此案例時(shí),如果我正常添加一個(gè)重復(fù)元素是什么結(jié)果呢?

public class HashSetDemo { public static void main(String[] args) { //創(chuàng)建HashSet集合對(duì)象 HashSet<Student> hashSet = new HashSet<Student>(); //創(chuàng)建學(xué)生對(duì)象 Student s1 = new Student('愛(ài)學(xué)習(xí)', 21); Student s2 = new Student('愛(ài)Java', 22); Student s3 = new Student('堅(jiān)持不懈', 23); Student s4 = new Student('愛(ài)Java', 22); //把學(xué)生添加到集合 hashSet.add(s1); hashSet.add(s2); hashSet.add(s3); hashSet.add(s4); //遍歷集合(增強(qiáng)for循環(huán)) for (Student s : hashSet) { System.out.println(s.getName() + ',' + s.getAge()); } }}

運(yùn)行結(jié)果:

Java HashSet集合存儲(chǔ)遍歷學(xué)生對(duì)象代碼實(shí)例

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

在對(duì)象類中重寫(xiě)hashCode方法和equals方法后(自動(dòng)生成即可)運(yùn)行上面的代碼,運(yùn)行結(jié)果:

Java HashSet集合存儲(chǔ)遍歷學(xué)生對(duì)象代碼實(shí)例

可見(jiàn),重復(fù)的元素未被添加到集合。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 屏东县| 搜索| 新郑市| 蕉岭县| 泌阳县| 辽阳市| 会宁县| 石屏县| 东乡| 南开区| 揭西县| 镇坪县| 芜湖县| 龙井市| 前郭尔| 墨江| 阳原县| 通山县| 剑河县| 渝中区| 江源县| 罗源县| 库伦旗| 桐乡市| 青阳县| 饶平县| 安远县| 广灵县| 洪泽县| 丰城市| 玉树县| 刚察县| 定兴县| 西丰县| 绿春县| 黄山市| 聊城市| 沧源| 增城市| 常山县| 洛浦县|