如何實現(xiàn)JavaHashSet集合存儲遍歷學(xué)生對象

本篇內(nèi)容主要講解“如何實現(xiàn)Java HashSet集合存儲遍歷學(xué)生對象”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“如何實現(xiàn)Java HashSet集合存儲遍歷學(xué)生對象”吧!

專注于為中小企業(yè)提供成都做網(wǎng)站、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)臨清免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

如何實現(xiàn)Java HashSet集合存儲遍歷學(xué)生對象

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

public class HashSetDemo {
  public static void main(String[] args) {
    //創(chuàng)建HashSet集合對象
    HashSet<Student> hashSet = new HashSet<Student>();

    //創(chuàng)建學(xué)生對象
    Student s1 = new Student("愛學(xué)習(xí)", 21);
    Student s2 = new Student("愛Java", 22);
    Student s3 = new Student("堅持不懈", 23);

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

    //把學(xué)生添加到集合
    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());
    }
  }
}

運行結(jié)果:

如何實現(xiàn)Java HashSet集合存儲遍歷學(xué)生對象

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

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

如何實現(xiàn)Java HashSet集合存儲遍歷學(xué)生對象

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

到此,相信大家對“如何實現(xiàn)Java HashSet集合存儲遍歷學(xué)生對象”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

本文名稱:如何實現(xiàn)JavaHashSet集合存儲遍歷學(xué)生對象
當(dāng)前網(wǎng)址:http://muchs.cn/article14/ighide.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、商城網(wǎng)站、網(wǎng)站營銷、動態(tài)網(wǎng)站搜索引擎優(yōu)化、品牌網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管