list集合的常用方法

2021-10-03 19:45:28 字數 2089 閱讀 2284

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...