java兩個(gè)list取交集 在java的集合中是怎么判斷兩個(gè)對(duì)象是否相等的?
在java的集合中是怎么判斷兩個(gè)對(duì)象是否相等的?首先判斷兩個(gè)對(duì)象的hashcode()是否相等,然后判斷equals()是否相等。如果兩個(gè)對(duì)象相等,則它們相等。PS:兩個(gè)對(duì)象是否相等的最終決定是equ
在java的集合中是怎么判斷兩個(gè)對(duì)象是否相等的?
首先判斷兩個(gè)對(duì)象的hashcode()是否相等,然后判斷equals()是否相等。如果兩個(gè)對(duì)象相等,則它們相等。PS:兩個(gè)對(duì)象是否相等的最終決定是equals()。hashcode()的存在只是比較的效率。如果沒(méi)有hashcode(),比較會(huì)很慢。Equals()是判斷的唯一標(biāo)準(zhǔn),hashcode()更快
首先,我們需要確定set equality的定義。我們應(yīng)該認(rèn)為,如果兩個(gè)集合的元素是相同的,那么它們是相等的。然后進(jìn)行如下判斷:第一步:判斷兩個(gè)列表集的元素個(gè)數(shù)是否相等。如果它們不相等,則兩個(gè)列表集不相等,并且判斷結(jié)束。如果它們相等,則轉(zhuǎn)到第二步:判斷LIST1的所有元素是否都在List2中。遍歷LIST1,取出LIST1中的元素,然后轉(zhuǎn)到List2比較List2是否也有這個(gè)元素。如果LIST1中的任何元素在List2中不存在,則這兩個(gè)列表集不相等。如果所有元素都存在,則兩個(gè)列表集相等。這里需要注意的是,在第一步中,已經(jīng)判斷LIST1和List2的元素的數(shù)目相等。因此,在第二步中,如果LIST1的所有元素都在List2中,則可以證明LIST1和List2是相等的。不需要遍歷List2中的元素來(lái)判斷它們是否存在于LIST1中。下面是上訴過(guò)程的Java代碼示例:public Boolean equal list(LIST1,List2){if(LIST1)。大?。ǎ?!=列表2。Size())return
看看這個(gè)網(wǎng)頁(yè)鏈接,equal=new getterbaseequal()//判斷屬性是否完全等價(jià)于Boolean Eq=赤道.isEquals(user1,user2)//獲取不同的屬性列表