java Stream結合函式方法
本教程操作環境:windows7系統、java10版,DELL G3電腦。
1.對映
如果想透過某種操作把一個流中的元素轉化成新的流中的元素,可以使用 map() 方法。
public class MapStreamDemo { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("周杰倫"); list.add("王力宏"); list.add("陶喆"); list.add("林俊杰"); Stream<Integer> stream = list.stream().map(String::length); stream.forEach(System.out::println); } }
2.排序
public void test3(){ //(1)自然排序 List<Integer> list = Arrays.asList(4,3,7,9,12,8,10,23,2); Stream<Integer> stream = list.stream(); stream.sorted().forEach(System.out::println); //(2)物件排序:物件類可以先實現comparable介面,或者是直接指定 //第一種:先實現compable介面 List<Student> studentList = StudentData.getStudents(); studentList.stream().sorted().forEach(System.out::println); //第二種:直接指定comparable List<Student> studentList1 = StudentData.getStudents(); studentList1.stream() .sorted((e1,e2)-> Integer.compare(e1.getAge(),e2.getAge())) .forEach(System.out::println); }
3.組合
reduce() 方法的主要作用是把 Stream 中的元素組合起來,它有兩種用法:
Optional reduce(BinaryOperator accumulator)
沒有起始值,只有一個引數,就是運算規則,此時返回 Optional。
T reduce(T identity, BinaryOperator accumulator)
有起始值,有運算規則,兩個引數,此時返回的型別和起始值型別一致。
public class ReduceStreamDemo { public static void main(String[] args) { Integer[] ints = {0, 1, 2, 3}; List<Integer> list = Arrays.asList(ints); Optional<Integer> optional = list.stream().reduce((a, b) -> a + b); Optional<Integer> optional1 = list.stream().reduce(Integer::sum); System.out.println(optional.orElse(0)); System.out.println(optional1.orElse(0)); int reduce = list.stream().reduce(6, (a, b) -> a + b); System.out.println(reduce); int reduce1 = list.stream().reduce(6, Integer::sum); System.out.println(reduce1); } }
以上就是關於java Stream對映、排序和組合的操作方法介紹,根據上面的簡單分析執行程式碼節課實現,下次遇到這類問題,可以考慮下使用Stream來解決。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/430/viewspace-2831357/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java8之Stream-函式式介面Java函式
- Stream聚合函式函式
- java方法/函式Java函式
- Stream之高階函式函式
- Java-Stream流方法學習及總結Java
- Java8 Stream流的合併Java
- Sanic response stream() 函式用法和示例函式
- php常用Stream函式集介紹PHP函式
- match函式簡單介紹以及與index函式結合應用函式Index
- 基礎篇:JAVA.Stream函式,優雅的資料流操作Java函式
- Java Stream 流如何進行合併操作Java
- Java8 Stream的總結Java
- 結合php ob函式理解緩衝機制PHP函式
- Java 8:使用compose和andThen組合函式Java函式
- Java script 中的函式使用方法Java函式
- python pandas常用統計函式總結_包括groupby,crossTab等方法結合使用的比較Python函式ROS
- Sanic response file_stream() 函式用法和示例函式
- ORACLE常用結構和函式使用方法總結Oracle函式
- Java8 Lambda表示式與Stream API (二): Stream API的使用JavaAPI
- react中三種函式呼叫方法總結React函式
- Java程式設計基礎05——方法(函式)Java程式設計函式
- Java函式式介面Java函式
- Java 不可變集合 Stream流以及方法引用Java
- 結合 async 非同步函式 - 提高 Promise 的易用性非同步函式Promise
- Java StreamJava
- java8新特性之函式式介面、lambda表示式、介面的預設方法、方法和建構函式的引用Java函式
- 用java連線mongodb並執行$match和$group結合的聚合函式的例項。JavaMongoDB函式
- Java 函數語言程式設計(三)流(Stream)Java函數程式設計
- Date函式方法函式
- jquery繫結未來新建立函式的方法onjQuery函式
- python函式與方法的區別總結Python函式
- jQuery操作iframe中js函式的方法小結jQueryJS函式
- 8000字長文讓你徹底瞭解 Java 8 的 Lambda、函式式介面、Stream 用法和原理Java函式
- 函式小結函式
- 好程式設計師Java培訓分享Java函式式編碼結構程式設計師Java函式
- 【Java】函式使用Java函式
- Java——main函式JavaAI函式
- JS 函式式概念: 管道 和 組合JS函式