關於物件去重的一點感覺
在是實際的開發過程中,我們的list集合裡面或者set裡面會有存放多個資料,並且資料的內容不僅僅在是學習中的資料了
!他可以是物件,也可以是基本的資料型別,但是呢,我們的專案要求的就不一樣了,使用set去重的話,對物件是沒有用的,然後呢?怎麼辦
哥哥教你----------
因為物件之間是不能有兩個一模一樣的資料的,就算他們的屬性值一樣,他的棧堆位址也是不一樣的,通過set或者map以及list,我們都不行去重物件,但是如果你會has的話,重寫他們的equals和hashcode的話,那麼你就會進行物件去重了!
說了一堆,不瞎掰了,給你上乾果
重寫equals方法**在這裡哦:
public boolean equals(object o)
我這裡的**是根據物件的屬性進行區分的,只要有乙個不同,那麼他們這兩個物件就是不同的,大家可以根據自己的需求進行新增減少物件區分的條件
重寫hashcode的方法在這呢:諾
@override
public int hashcode()
我這的hashcode是根據物件的所有屬性進行區分,有乙個不同就視為不是同乙個物件,也可以進比較身份證號啊,姓名啊,進行區分
我這也給你寫乙個根據姓名進行區別的hashcode吧
public int hashcode()
告訴你乙個秘密,如果你用的是idea的話,哈哈,我們可以通過快捷鍵進行自動重寫equals和hashcode哦,快捷鍵是:alt+insert js讓乙個物件 陣列,去重
乙個陣列中的每一項都是物件,現在需要將這個物件中id相同的只保留乙個,即根據id去重,通過以上方法可實現 var person var obj person person.reduce cur,next 設定cur預設型別為陣列,並且初始值為空的陣列 console.log person 同上的情況...
怎麼去遍歷乙個物件 ?
今天再讀js高階,再次認識了for in語句,for in語句是一種精準的迭代語句,可以用來列舉物件的屬性 上面已經提到了for in語句了,所以它是和一種方法 const obj for let key in obj 其中key是 id,name,age 而boj key 就是對應的值第二種 用 ...
乙個錢鍾書就夠了
乙個錢鍾書就夠了 說過,默存先生是中國傳統文化的最高結晶之一,他的逝世象徵中國古典文化和二十世紀同時終結。誠哉斯言。近讀 管錐編 更加體會到錢鍾書是一口深井,其汲愈深,愈嘆綆短 或者是一座大山,仰之彌高,鑽之彌堅。他集文化崑崙和學術泰山於一身,幾十年來,即使時乖運蹇,風雨飄搖,仍是八風不動,孜孜不輟...