lambda 表示式相關的整理

2021-10-05 03:47:24 字數 2473 閱讀 4428

1. list 轉陣列

string ss = liststr.stream().toarray(string::new);

2. 刪除 list 中所有null

listlistwithoutnulls = list.stream() .filter(objects::nonnull) .collect(collectors.tolist());

listlistwithoutnulls = list.parallelstream() .filter(objects::nonnull) .collect(collectors.tolist());

3.將list 中實體類兩個欄位轉 map

mapmap = list.stream().collect(collectors.tomap(entity::getid, entity::gettype));

4.求和  list 中物件

1. bigdecimal allfullmarketprice = entitylist.stream().filter(value ->             value.getfullmarketprice()!=null).map(sceneanalysisrespvo::getfullmarketprice).reduce(bigdecimal.zero, bigdecimal::add);

2 .  bigdecimal total = naturaldaylist.stream().reduce(bigdecimal.zero, bigdecimal::add);    其中:naturaldaylist 是list 物件

5.分組函式

map> groupmap =  list.stream().collect(collectors.groupingby(object::getvmname));

6. 大資料量的list 分批次 切割處理

按每n個一組分割 

private static final integer max_number = n ;

/* 計算切分次數 */

private static integer countstep(integer size)

int limit = countstep(list.size());

//方法一:使用流遍歷操作

list> mglist = new arraylist<>();

stream.iterate(0, n -> n + 1).limit(limit).foreach(i -> );

//方法二 :獲取分割後的集合

list> splitlist = stream.iterate(0, n -> n + 1).limit(limit).parallel().map(a ->           list.stream().skip(a *max_number).limit(max_number).parallel().collect(collectors.tolist())).collect(collectors.tolist());

7. string 轉 list

arrays.stream(strarr.split(",")).map(s -> long.parselong(s.trim())).collect(collectors.tolist());

8. list 轉string ....

listlist2 = arrays.aslist("文學","**","歷史","言情","科幻","懸疑");

list2.stream().collect(collectors.joining("-"));

string string= "文學-**-歷史-言情-科幻-懸疑";

listlist = arrays.aslist(string.split("-")).stream().map(s -> string.format(s.trim())).collect(collectors.tolist());

9. 利用lambda 去重

listdatalist = list.stream().distinct().collect(collectors.tolist()); //字串去重

personlist.stream().collect(collectors.collectingandthen(collectors.tocollection(() -> new treeset<>(comparator.comparing(person::getname))), arraylist::new)); // 物件屬性去重

10.多個統一物件的list 合成乙個list 集合

listlist = new arraylist<>();

statisresps.parallelstream().filter(v -> v.getstaffname() != null).collect(collectors.groupingby(o ->         (o.getservicestaffid()),collectors.tolist())).foreach( (id,transfer) ->);

lambda表示式 lambda表示式

1.概述 c 11 中的 lambda 表示式用於定義並建立匿名的函式物件,以簡化程式設計工作。lambda 的語法形式如下 函式物件引數 操作符過載函式引數 mutable 或 exception 宣告 返回值型別可以看到,lambda 主要分為五個部分 函式物件引數 操作符過載函式引數 muta...

Lambda表示式轉換List整理

lambda 通用list轉map lambda表示式對list常見轉換整理 基於如下物件進行操作 data lombok 註解,替代get set方法 public class myobject 目標list listmyobjectlist new arraylist 1 獲取物件myobjec...

Lambda表示式和Lambda表示式樹

原版來自 linq學習筆記之二 lambda表示式和lambda表示式樹 lambda 表示式 lambda expressions 是linq實現的另一特性。lambda表示式的作用就是使用使用函式式語法,將方法實現關聯到委託例項。在使用查詢表示式 query expressions 時,查詢表示...