摘要:從發布到現在,已有三年多了,也得到了廣泛的應用,但似乎里面最重要的特性和對很多人來說還是很陌生。想通過介紹一些實際的問題和答案來講解在現實開發中我們可以通過和可以做些什么,以及什么是正確的姿勢。
從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
有一個List
private MapnameMap(List choices) { final Map hashMap = new HashMap<>(); for (final Choice choice : choices) { hashMap.put(choice.getName(), choice); } return hashMap; }
【答案】
如果能確保Choice的name沒有重復的
Mapresult = 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?下面是我的嘗試:
ListsourceLongList = 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 8 Stream的開源框架 StreamEx來解答StackOverflow上一些經常被問到關于Java 8 Stream的問題: Convert Java 8 List into Map 用JDK Stream API: Map result = ch...
摘要:作為微服務的基礎設施之一,背靠強大的生態社區,支撐技術體系。微服務實踐為系列講座,專題直播節,時長高達小時,包括目前最流行技術,深入源碼分析,授人以漁的方式,幫助初學者深入淺出地掌握,為高階從業人員拋磚引玉。 簡介 目前業界最流行的微服務架構正在或者已被各種規模的互聯網公司廣泛接受和認可,業已成為互聯網開發人員必備技術。無論是互聯網、云計算還是大數據,Java平臺已成為全棧的生態體系,...
閱讀 3675·2021-11-16 11:41
閱讀 2880·2021-09-23 11:45
閱讀 687·2019-08-30 15:44
閱讀 538·2019-08-30 13:10
閱讀 1961·2019-08-30 12:49
閱讀 3526·2019-08-28 17:51
閱讀 1471·2019-08-26 12:20
閱讀 698·2019-08-23 17:56