1、對list去重
(1)簡單的基本型別
lista = new arraylista.add("1");
a.add("2");
a.add("1");
a=a.stream().distinct().collect(collectors.tolist());
a.foreach(b->system.out.println());
(2)一般物件去重listuserlist = users.stream()
.collect(collectors.collectingandthen(collectors.tocollection(()->new treeset<>(comparator.comparing(o-> o.getn()))), arraylist::new));
這種去重,有可能會導致原來的list順序改變。
(3)不改變list順序的去重
listuserlist=users.stream().filter(distinctbykey(sheetdimensiondto::getn)).collect(collectors.tolist());
public static predicatedistinctbykey(function<? super t, object> keyextractor)
對list排序
(1)lamda方式
listlist= lists.newarraylist(2, 1, 3);
list.sort(comparator.comparingint(integer::intvalue).reversed()); // 倒序
list.sort(comparator.comparingint(integer::intvalue); //預設正序
//多欄位排序
list.sort(comparator.comparing(user::getid).thencomparing(user::getage));
(2) collections 方式// 自身排序
//基本型別
listcc = lists.newarraylist(2, 1, 3);
collections.sort(cc);
//一般物件
collections.sort(list, new comparator()
});//乙個list按另乙個list排序
collections.sort(userlist1, new comparator()
if(io2 == -1)
return io1 - io2;
}});
對list分組map> groupby*** = userlist.stream().collect(collectors.groupingby(user::get***));
對list某些條件過濾listusercommonlist = userlist.stream().filter(a -> !a.getjobnumber().equals("201901")).collect(collectors.tolist());
對list分組map> groupby*** = userlist.stream().collect(collectors.groupingby(user::get***));
對list求和//基本型別
int sumage = userlist.stream().maptoint(user::getage).sum();
//bigdecimal型別
bigdecimal totalquantity = userlist.stream()
.map(user::getfamilymemberquantity).reduce(bigdecimal.zero, bigdecimal::add);
//上面的求和不能過濾bigdecimal物件為null的情況,可能會報空指標,這種情況,我們可以用filter方法過濾,或者重寫求和方法
List集合常用方法
boolean add e o 向列表的尾部追加指定的元素 void add int index,e element 在列表的指定位置插入指定元素。boolean addall collection c 追加指定 collection中的所有元素到此列表的結尾,順序是指定collection的迭代器...
C 集合List的常用方法
雇員實體類 using system using system.collections.generic using system.linq using system.text using system.threading.tasks namespace testlist 雇員性別 public st...
C 中List集合的常用方法
list類是arraylist類的泛型等效類,該類使用大小可按需動態增加的陣列實現ilist泛型介面。泛型的好處 它為使用c 語言編寫物件導向程式增加了極大的效力和靈活性。不會強行對值型別進行裝箱和拆箱,或對引用型別進行向下強制型別轉換,所以效能得到提高。效能注意事項 在決定使用ilist還是使用a...