国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Top stackoverflow 問答系列之Java 8 Stream 篇 (一)

z2xy / 3429人閱讀

摘要:從發布到現在,已有三年多了,也得到了廣泛的應用,但似乎里面最重要的特性和對很多人來說還是很陌生。想通過介紹一些實際的問題和答案來講解在現實開發中我們可以通過和可以做些什么,以及什么是正確的姿勢。

從Java 8 2014 發布到現在,已有三年多了,JDK 8 也得到了廣泛的應用,但似乎Java 8里面最重要的特性:Lambdas和Stream APIs對很多人來說還是很陌生。想通過介紹Stackoverflow一些實際的問題和答案來講解在現實開發中我們可以通過Lambdas和Stream APIs可以做些什么,以及什么是正確的姿勢。在介紹那些問答之前,我們先要對Java 8 和Stream APIs有些基本的了解,這里推薦幾篇文章:

java.util.stream 庫簡介

Java 8 中的 Streams API 詳解

What"s New in Java 8

如果你對Java 8 Lambds和Stream APIs還不是很了解,建議先把上面的幾篇文章看幾遍。
接下來是問答:

1. Java 8 List into Map
有一個List choices, 要把它轉換成一個Map, Map的Key是Choice的名稱,Value是Choice,如果用Java 7,代碼將是:

private Map nameMap(List choices) {
    final Map hashMap = new HashMap<>();
    for (final Choice choice : choices) {
        hashMap.put(choice.getName(), choice);
    }
    return hashMap;
}

【答案】
如果能確保Choicename沒有重復的

Map result =
        choices.stream().collect(Collectors.toMap(Choice::getName,
                                              Function.identity()));

如果name有重復的,上面的代碼會拋IllegalStateException,要用下面的代碼,

Map> result =
        choices.stream().collect(Collectors.groupingBy(Choice::getName));

2. How to Convert a Java 8 Stream to an Array?
什么是最簡便的方式把一個Stream轉換成數組:

【答案】

String[] strArray = Stream.of("a", "b", "c")toArray(size -> new String[size]);

int[] intArray = IntStream.of(1, 2, 3).toArray();

3.Retrieving a List from a java.util.stream.Stream in Java 8
怎么把一個Stream轉換成List?下面是我的嘗試:

List sourceLongList = Arrays.asList(1L, 10L, 50L, 80L, 100L, 120L, 133L, 333L);
List targetLongList = new ArrayList<>();
sourceLongList.stream().filter(l -> l > 100).forEach(targetLongList::add);

【答案】

targetLongList = sourceLongList.stream()
        .filter(l -> l > 100)
        .collect(Collectors.toList());

這一篇的目的主要以學習前面推薦的幾篇文章為主,和介紹了幾個簡單的問題,接下來在第二篇會介紹更多有興趣的問答。

【更新】更多請參閱:Abacus-util.

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/70179.html

相關文章

  • java

    摘要:多線程編程這篇文章分析了多線程的優缺點,如何創建多線程,分享了線程安全和線程通信線程池等等一些知識。 中間件技術入門教程 中間件技術入門教程,本博客介紹了 ESB、MQ、JMS 的一些知識... SpringBoot 多數據源 SpringBoot 使用主從數據源 簡易的后臺管理權限設計 從零開始搭建自己權限管理框架 Docker 多步構建更小的 Java 鏡像 Docker Jav...

    honhon 評論0 收藏0
  • Java 8 Stream實戰

    摘要:在這片文章里,主要介紹怎么用的開源框架來解答上一些經常被問到關于的問題用用用用用用用用 在這片文章里,主要介紹怎么用Java 8 Stream的開源框架 StreamEx來解答StackOverflow上一些經常被問到關于Java 8 Stream的問題: Convert Java 8 List into Map 用JDK Stream API: Map result = ch...

    leoperfect 評論0 收藏0
  • [直播視頻] 《Java 微服務實踐 - Spring Boot 系列》限時折扣

    摘要:作為微服務的基礎設施之一,背靠強大的生態社區,支撐技術體系。微服務實踐為系列講座,專題直播節,時長高達小時,包括目前最流行技術,深入源碼分析,授人以漁的方式,幫助初學者深入淺出地掌握,為高階從業人員拋磚引玉。 簡介 目前業界最流行的微服務架構正在或者已被各種規模的互聯網公司廣泛接受和認可,業已成為互聯網開發人員必備技術。無論是互聯網、云計算還是大數據,Java平臺已成為全棧的生態體系,...

    Enlightenment 評論0 收藏0
  • 前端資源收集整理

    摘要:工作原因,最近一年斷斷續續寫了一點前端代碼,收集整理了一些資料,和大家共享。 工作原因,最近一年斷斷續續寫了一點前端代碼,收集整理了一些資料,和大家共享。 Github版本:Front-End Resource Collection 前端相關資源匯總 學習指導 精華文章 Web前端的路該怎么走?:文章超長,但是干貨超級多,值得反復精讀! 聽說2017你想寫前端?:適合于已經度過了小白階...

    awesome23 評論0 收藏0

發表評論

0條評論

z2xy

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<