第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

面試問題 - 集合中明顯重復

面試問題 - 集合中明顯重復

蕭十郎 2022-09-14 17:57:55
在最近的一次采訪中,我看到了這個代碼。class User {    private Long id;    private String name;    public void setId(Long id) {        this.id = id;    }    public Long getId() {        return this.id;    }    public void setName(String name) {        this.name = name;    }    public String getName() {        return this.name;    }}Set<User> set = new HashSet<>();User user = new User();user.setId(1L);user.setName("test");set.add(user);User user2 = new User();user2.setId(1L);user2.setName("test");set.add(user2);System.out.println(set.size());面試官問我,對于布景的大小,會打印出什么。我回答了1,因為User的兩個實例具有相同的值。但是在面試之后,我運行了代碼,我得到了2。既然集合應該具有唯一的值,那么有人可以解釋一下發(fā)生了什么嗎?
查看完整描述

2 回答

?
鴻蒙傳說

TA貢獻1865條經(jīng)驗 獲得超7個贊

equals()方法的默認實現(xiàn)將比較兩個對象的內存地址,而hashCode()方法的默認實現(xiàn)將是對象的內存地址。當我們創(chuàng)建 2 個指向不同內存位置的對象時,默認情況下它們將有所不同,除非我們通過重寫類的 2 個方法來定義相等性和哈希代碼。但是,如果您嘗試將同一實例添加兩次,則只會將一個實例添加到集合中。希望這很清楚。


查看完整回答
反對 回復 2022-09-14
?
湖上湖

TA貢獻2003條經(jīng)驗 獲得超2個贊

感謝 Slaw 的答案 - 不會覆蓋和。UserequalshashCode



查看完整回答
反對 回復 2022-09-14
  • 2 回答
  • 0 關注
  • 94 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號