private static void removeduplicate(listlist)
使用linkedhashset實現list集合去重
這裡有個地方要注意,add操作是新增元素的引用,那麼這意味著如果你改變了該元素,list中對應的元素也被改變了
而addall操作則是拷貝,當你改變元素,list中對應的元素仍不變
public static void main(stringargs)
set.add("3"); //重複資料,不會寫入
set.add(null); //可以寫入空資料
iteratoriter = set.iterator();
// iter.remove();
system.out.println("!!!"+iter);
system.out.println("!!!"+iter.next());
system.out.println("!!!"+iter.next());
while(iter.hasnext())
}
通過執行程式可以發現,iter.next()是迭代器向前進1,然後輸出當前val
而iter.remove是,輸出當前val,然後回到上一位置
每個set都有個head,如果輸出一次,刪除一次,那麼每次刪除後,都會回到head!
當對head執行remove操作時,無任何效果!
特別需要注意的是,lista.contains(new int)比較的是位址,不是內容!!!
利用set集合進行list集合高效去重
最近幫朋友做專案,自己也在學習資料結構和演算法分析,發現要想專案高效率的執行,資料結構和演算法是必須要掌握的一門技術,剛好專案中就碰到了處理資料的地方。首先我先說說需求吧,有兩個集合a b,在a集合去除b集合中people物件的資料,只要a集合中people的name和sublist集合中peopl...
List集合去重
第一種 list每remove掉乙個元素以後,後面的元素都會向前移動,此時如果執行i i 1,則剛剛移過來的元素沒有被讀取。string str1 newstring abcde1 string str2 newstring abcde2 string str3 newstring abcde3 s...
List集合去重
首先,我們都知道list集合是乙個儲存有序可重複元素的容器,那麼如果要對乙個list去重有哪些方法呢?方式一 迴圈list中的所有元素然後刪除重複 public static list removeduplicate list list return list public static list ...