jdk1 8常用總結

2021-09-26 07:47:47 字數 1820 閱讀 7270

1.查詢集合裡的第乙個物件---filter

例:查詢listlist 中username為小明的物件t

list.stream().filter(...).findfirst()

1) list.stream().filter(e ->"小明".equals(e.getusername())

).findfirst();

2.查詢滿足條件的物件,並返回集合---filter、collect

2) list.stream().filter(...).collect(collectors.tolist())

list.stream()

.filter(e ->

"小明"equals(e.getusername())

).collect(collectors.tolist());

3.獲取物件集合中所有的username集合 ---map

listnamelist = list.stream().map(t: :getusername).collect(collectors.tolist()); //方法1

listnamelist =list.stream().map(e ->e.getusername()).collect(collectors.tolist()); //方法2

3.list 轉map

mapmap =list.stream().collect(collectors.tomap(student::getid,student: :getname));

如果id有重複 則指定唯一的id,如下:

mapmap =list.stream().collect(collectors.tomap(student : :getid,student : :getname, (key1,key2) -> key1));

4.對指定的list物件裡的某乙個字段排序

list.stream().sorted(comparator.comparing(person : :getnameid).thencomparing(person : :getage)).collect(collectors.tolist());

或者collections.sort(list, comparator.comparing(user : :getage));  

//降序   collections.sort(list, comparator.comparing(user : :getage).reverse());  

//5.去重

list.stream()

.collect(

collectors.collecingandthen(

collectors.tocollection( () -> new treeset<>(comparator.comparing(user : :getid))),

arraylist : :new

//兩個欄位去重

list.stream()

.collect(

collectors.collecingandthen(

collectors.tocollection( () -> new treeset<>(comparator.comparing(user ->user.getid +user.getage)))),

arraylist : :new

6.分組 按照id分組,一組多個的情況,取每組第乙個

list.stream().collect(collectors.groupingby(user::getid,collectors.collectors.collectingandthen(collectors.tolist(),v -> v.get(0))));

ThreadLocal總結 jdk1 8原始碼

threadlocal為每個使用它的執行緒提供乙個變數的副本。threadlocal中的主要方法 public void set t value public void set t value 先呼叫thread類的靜態方法獲得當前執行緒的thread物件,每個執行緒對應的thread物件都有乙個t...

Java 方法引用(JDK1 8)

引用 物件引用,物件引用的本質在於為乙個物件起別名,即 不同的棧記憶體可以同時指向同一塊堆記憶體空間。與物件引用類似的情況是,方法引用,即 為方法設定別名。在jdk 1.8之中針對於方法引用提供有如下的四種形式 引用靜態方法 類名稱 static方法名稱 引用某個物件的方法 例項化物件 普通方法 引...

jdk1 8新增流式處理

stream 介面 流式處理給人的感覺 簡介很多,但可讀性不高,例如 listevens new arraylist for final integer num nums listevens nums.stream filter num num 2 0 collect collectors.toli...