最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

簡介

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

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

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

復(fù)雜用法實例

傳入數(shù)組ids,在list<Obj>上操作,找出Obj中id想匹配的,并且按照id進(jìn)行collect成map(這里假設(shè)找出來的按照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));
}

對象列表某一列求和

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

多個list追加到同一個中

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

類似wordCount計數(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實現(xiàn)分段chunk

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

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

ListUtils.partition(list, batchSize)

總結(jié)

以上就是這篇文章的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • JAVA中StackOverflowError錯誤的解決

    JAVA中StackOverflowError錯誤的解決

    這篇文章主要介紹了JAVA中StackOverflowError錯誤的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 多線程Thread,Runnable,Callable實現(xiàn)方式

    多線程Thread,Runnable,Callable實現(xiàn)方式

    這篇文章主要為大家詳細(xì)介紹了Java多線程如何實現(xiàn)Thread,Runnable,Callable的方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 利用Java實現(xiàn)玩家打怪小游戲的完整過程

    利用Java實現(xiàn)玩家打怪小游戲的完整過程

    這篇文章主要介紹了如何使用Java創(chuàng)建一個簡單的“打怪小游戲”,游戲中的角色分為法師、戰(zhàn)士、BOSS和一個Team類,代碼展示了如何通過面向?qū)ο缶幊虂韺崿F(xiàn)一個基本的戰(zhàn)斗系統(tǒng),需要的朋友可以參考下
    2024-12-12
  • java中Struts2 的文件上傳和下載示例

    java中Struts2 的文件上傳和下載示例

    這篇文章主要介紹了java中Struts2 的文件上傳和下載示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。
    2016-12-12
  • Java Buffer緩沖區(qū)(NIO)

    Java Buffer緩沖區(qū)(NIO)

    Java NIO(New IO)是從Java 1.4版本開始引入的一個新的IO API,可以替代標(biāo)準(zhǔn)的Java IO API。本系列教程將有助于你學(xué)習(xí)和理解Java NIO。
    2021-09-09
  • Maven多模塊之父子關(guān)系的創(chuàng)建

    Maven多模塊之父子關(guān)系的創(chuàng)建

    這篇文章主要介紹了Maven多模塊之父子關(guān)系的創(chuàng)建,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • SpringBoot2 整合Ehcache組件,輕量級緩存管理的原理解析

    SpringBoot2 整合Ehcache組件,輕量級緩存管理的原理解析

    這篇文章主要介紹了SpringBoot2 整合Ehcache組件,輕量級緩存管理,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • Java 垃圾回收機(jī)制詳解及實例代碼

    Java 垃圾回收機(jī)制詳解及實例代碼

    這篇文章主要介紹了 Java 垃圾回收機(jī)制詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Java8接口中引入default關(guān)鍵字的本質(zhì)原因詳析

    Java8接口中引入default關(guān)鍵字的本質(zhì)原因詳析

    Default方法是在java8中引入的關(guān)鍵字,也可稱為Virtual extension methods—虛擬擴(kuò)展方法,這篇文章主要給大家介紹了關(guān)于Java8接口中引入default關(guān)鍵字的本質(zhì)原因,需要的朋友可以參考下
    2022-01-01
  • java設(shè)計模式之外觀模式(Facade)

    java設(shè)計模式之外觀模式(Facade)

    這篇文章主要為大家詳細(xì)介紹了java設(shè)計模式之外觀模式Facade的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01

最新評論

潞西市| 红原县| 屏山县| 北宁市| 崇州市| 横峰县| 梧州市| 美姑县| 那坡县| 永春县| 旬邑县| 江城| 电白县| 安吉县| 西青区| 虹口区| 樟树市| 前郭尔| 观塘区| 禹城市| 咸宁市| 五河县| 浠水县| 曲阜市| 贵溪市| 平安县| 馆陶县| 松江区| 岱山县| 青阳县| 泽普县| 横山县| 迁西县| 延安市| 金昌市| 称多县| 舞钢市| 洛南县| 靖安县| 章丘市| 丰都县|