list對象去重復(fù)效率最高 去除list集合中重復(fù)項的幾種方法?
去除list集合中重復(fù)項的幾種方法?一個對象怎樣算重復(fù)? 需要自己實現(xiàn)hashCode()和equals()方法來申明兩個對象‘相等’的判斷條件 最簡單的就是 一個或多個成員變量的值相等(比如id,n
去除list集合中重復(fù)項的幾種方法?
一個對象怎樣算重復(fù)? 需要自己實現(xiàn)hashCode()和equals()方法來申明兩個對象‘相等’的判斷條件 最簡單的就是 一個或多個成員變量的值相等(比如id,name)等,就認(rèn)為這兩個對象相等。 在這種情況下,就好辦了 Set set = new HashSet() set.addAll(list) 到這一步,已經(jīng)利用set的特性去重了。 接下來再把去重后的集合放到一個新的list去即可 List newlist = new ArrayList() newlist.addAll(set) 去重本身很簡單。 復(fù)雜在對‘對象相等’概念的理解。 默認(rèn)情況下,兩個對象在繼承了Object的方法后, 只有當(dāng)堆內(nèi)存地址相等的情況下,才相等。 所以,必須要自己重寫equals和hashCode