List集合流處理型別小結

2022-03-11 23:37:51 字數 2304 閱讀 2098

對應實體類

import

lombok.getter;

import

lombok.setter;

@getter

@setter

public

class

student

1.根據字段取出某乙個字段屬性的集合

liststudentlist = new arraylist<>();

list

newlist =studentlist.stream().map(student::getage).collect(collectors.tolist());

for(student student : newlist)

2。list根據某個字段公升序排序

liststudentlist = new arraylist<>();

list

newlist =studentlist.stream().sorted(comparator.comparing(student::getage)).collect(collectors.tolist());

for(student student : newlist)

3.list根據某個字段排序降序

listlist = new arraylist<>();

list = list.stream().sorted(comparator.comparing(student::getage).reversed()).collect(collectors.tolist());

4.獲取某一字段屬性值對應的資料集合

listresultlist =studentlist.stream()

.filter((student stu) ->area.equals(stu.getage()))

.collect(collectors.tolist());

5.根據某個字段值獲取出對應的物件   

student stu =studentlist.stream()

.filter(p -> "2018-08-12 12:10".equals(p.getbirthday()))

.findany().orelse(

null);

6.對集合元素去重

listnamelist = new arraylist<>();

namelist = namelist.stream().distinct().collect(collectors.tolist());

7.對集合某乙個屬性進行求和

liststulist = new arraylist<>();    

double totalage = stulist.stream().collect(collectors.summingdouble(student::getage));

8。獲取集合中的某乙個屬性的資料集合並去重

// 所有的ip資訊物件集合

listnetinfolist =netipservice.querynetiplist();

// 從所有ip資訊物件集合中根據機房id過濾出所有機房id不同的資料物件,並根據機房id去重

list

distinctiproomlist =netinfolist.stream().collect(collectors

.collectingandthen(collectors.tocollection(() -> new treeset<>(

comparator.comparing(netiipinfo::getiproomid))), arraylist::

new));

**是很簡答,很優雅的

解釋一下

list.stream(): 是把list集合轉化為stream集合

sorted(): 進行排序,其中comparator.comparing(student::getage)表示按照年紀排序,

.reversed()表示是逆序,因為預設情況下,不加.reversed 是公升序的

collect(collectors.tolist()): 再次將排序後的stream集合轉化為list集合

.findany()表示將其中任意乙個返回;

.orelse(null)表示如果乙個都沒找到返回null

distinct() 對集合元素或物件去重

summingdouble() 對集合元素進行求和為double型別資料

C ArrayList 和 List 集合型別

arraylist 或 list 物件是較為複雜的陣列。arraylist類和list泛型類提供多數 system.collections 類都提供的但 array 類未提供的一些功能。例如 另一方面,array提供了arraylist和list所缺少的某些靈活性。例如 需要陣列的大多數情況都可以改...

List集合基本處理

1.迴圈list中的所有元素然後刪除重複 for int i 0 i list.size 1 i 2.通過hashset踢除重複元素 hashset h new hashset list list.clear list.addall h 3.刪除arraylist中重複元素,保持順序 for ite...

List集合分頁處理的方法

第一種方法是迴圈擷取某個頁面的資料 迴圈擷取某頁列表進行分頁 param datalist 分頁資料 param pagesize 頁面大小 param currentpage 當前頁面 public static listpage listdatalist,int pagesize,int cur...