欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2017年07月16日 09:04:04   作者:四號(hào)程序員  
lambda表達(dá)式是JAVA8中提供的一種新的特性,它支持Java也能進(jìn)行簡(jiǎn)單的“函數(shù)式編程”。 下面這篇文章主要給大家介紹了關(guān)于Java8新特性Lambda表達(dá)式的一些復(fù)雜用法的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。

簡(jiǎn)介

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

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

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

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

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

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

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

@Override
public Map<Integer, MyObj> getOperationByShipmentIds(Collection<Integer> 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<MyObject> list = services.stream()
        .flatMap(s -> s.getObjects().stream())
        .collect(Collectors.toList());

類(lèi)似wordCount計(jì)數(shù)

import java.util.*;
import java.util.stream.*;
 
class Test {
 public static void main(String[] args) {
  List<String> list = new ArrayList<>();
 
  list.add("Hello");
  list.add("Hello");
  list.add("World");
 
  Map<String, Long> 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í)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • Java常見(jiàn)的四種負(fù)載均衡算法

    Java常見(jiàn)的四種負(fù)載均衡算法

    本文主要介紹了Java常見(jiàn)的四種負(fù)載均衡算法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Spring Cloud中使用Feign,@RequestBody無(wú)法繼承的解決方案

    Spring Cloud中使用Feign,@RequestBody無(wú)法繼承的解決方案

    這篇文章主要介紹了Spring Cloud中使用Feign,@RequestBody無(wú)法繼承的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Spring整合Springmvc的相關(guān)介紹

    Spring整合Springmvc的相關(guān)介紹

    今天小編就為大家分享一篇關(guān)于Spring整合Springmvc的相關(guān)介紹,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • hibernate存取json數(shù)據(jù)的代碼分析

    hibernate存取json數(shù)據(jù)的代碼分析

    這篇文章主要介紹了hibernate存取json數(shù)據(jù)的代碼分析,需要的朋友可以參考下
    2017-09-09
  • 一文搞懂spring boot本地事務(wù)@Transactional參數(shù)

    一文搞懂spring boot本地事務(wù)@Transactional參數(shù)

    這篇文章主要介紹了spring boot本地事務(wù)@Transactional參數(shù)詳解,本文通過(guò)示例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-10-10
  • spring cloud-zuul的Filter使用詳解

    spring cloud-zuul的Filter使用詳解

    這篇文章主要介紹了spring cloud-zuul的Filter使用詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • Java分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)原理與用法詳解

    Java分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)原理與用法詳解

    這篇文章主要介紹了Java分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)原理與用法,結(jié)合實(shí)例形式分析了java分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、跳轉(zhuǎn)語(yǔ)句等相關(guān)概念、原理、使用技巧與操作注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • 解決springboot 多線程使用MultipartFile讀取excel文件內(nèi)容報(bào)錯(cuò)問(wèn)題

    解決springboot 多線程使用MultipartFile讀取excel文件內(nèi)容報(bào)錯(cuò)問(wèn)題

    這篇文章主要介紹了解決springboot 多線程使用MultipartFile讀取excel文件內(nèi)容報(bào)錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • Spring配置文件無(wú)法讀取properties屬性的解決

    Spring配置文件無(wú)法讀取properties屬性的解決

    這篇文章主要介紹了Spring配置文件無(wú)法讀取properties屬性的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java的Semaphore信號(hào)量使用及原理解讀

    Java的Semaphore信號(hào)量使用及原理解讀

    這篇文章主要介紹了Java的Semaphore信號(hào)量使用及原理解讀,Semaphore(信號(hào)量)是Java中一個(gè)并發(fā)控制工具,用于控制對(duì)共享資源的訪問(wèn),它基于計(jì)數(shù)器的原理,可以限制同時(shí)訪問(wèn)某個(gè)資源的線程數(shù)量,需要的朋友可以參考下
    2023-12-12

最新評(píng)論