真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java8新特性Lambda表達(dá)式的一些復(fù)雜用法總結(jié)

簡(jiǎn)介

創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)靜安,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792

lambda表達(dá)式是JAVA8中提供的一種新的特性,它支持Java也能進(jìn)行簡(jiǎn)單的“函數(shù)式編程”。

它是一個(gè)匿名函數(shù),Lambda表達(dá)式基于數(shù)學(xué)中的λ演算得名,直接對(duì)應(yīng)于其中的lambda抽象(lambda abstraction),是一個(gè)匿名函數(shù),即沒有函數(shù)名的函數(shù)。

本文將介紹關(guān)于Java8 Lambda表達(dá)式的一些復(fù)雜用法,分享出來供大家參考學(xué)習(xí),下面來一起看看詳細(xì)的介紹:

復(fù)雜用法實(shí)例

傳入數(shù)組ids,在list上操作,找出Obj中id想匹配的,并且按照id進(jìn)行collect成map(這里假設(shè)找出來的按照id不重復(fù))

@Override
public Map getOperationByShipmentIds(Collection ids) {
 return storage
   .stream()
   .filter(op -> ids.contains(op.getId()))
   .collect(Collectors.toMap(MyObj::getId, Function.identity()));
}

接上面的,假設(shè)id可以重復(fù):

@Override
public Map getOperationByShipmentIds(Collection ids) {
 return storage
   .stream()
   .filter(op -> ids.contains(op.getId()))
   .collect(Collectors.groupingBy(MyObj::getId));
}

對(duì)象列表某一列求和

list.values().stream().mapToInt(obj -> obj.getIntField()).sum();

多個(gè)list追加到同一個(gè)中

List list = services.stream()
        .flatMap(s -> s.getObjects().stream())
        .collect(Collectors.toList());

類似wordCount計(jì)數(shù)

import java.util.*;
import java.util.stream.*;
 
class Test {
 public static void main(String[] args) {
  List list = new ArrayList<>();
 
  list.add("Hello");
  list.add("Hello");
  list.add("World");
 
  Map counted = list.stream()
   .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
 
  System.out.println(counted);
 }
}

使用Lambda實(shí)現(xiàn)分段chunk

AtomicInteger counter = new AtomicInteger();
 
stream.collect(groupingBy(x->counter.getAndIncrement()/chunkSize))
 .values()
 .forEach(database::flushChunk);

跑個(gè)題,上面的那個(gè)也可以用apache commons搞定

ListUtils.partition(list, batchSize)

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)創(chuàng)新互聯(lián)的支持。


網(wǎng)頁標(biāo)題:Java8新特性Lambda表達(dá)式的一些復(fù)雜用法總結(jié)
鏈接分享:http://weahome.cn/article/gjjsed.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部