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函式
- java方法/函式Java函式
- Stream聚合函式函式
- Stream之高階函式函式
- Java-Stream流方法學習及總結Java
- Sanic response stream() 函式用法和示例函式
- match函式簡單介紹以及與index函式結合應用函式Index
- 基礎篇:JAVA.Stream函式,優雅的資料流操作Java函式
- Java8 Stream流的合併Java
- python pandas常用統計函式總結_包括groupby,crossTab等方法結合使用的比較Python函式ROS
- Java script 中的函式使用方法Java函式
- Java Stream 流如何進行合併操作Java
- python函式與方法的區別總結Python函式
- Python | Python常用函式、方法示例總結(API)Python函式API
- Java程式設計基礎05——方法(函式)Java程式設計函式
- Sanic response file_stream() 函式用法和示例函式
- Java函式式介面Java函式
- java8新特性之函式式介面、lambda表示式、介面的預設方法、方法和建構函式的引用Java函式
- jquery繫結未來新建立函式的方法onjQuery函式
- jQuery操作iframe中js函式的方法小結jQueryJS函式
- Date函式方法函式
- 好程式設計師Java培訓分享Java函式式編碼結構程式設計師Java函式
- 函式小結函式
- Java 函數語言程式設計(三)流(Stream)Java函數程式設計
- 結合 async 非同步函式 - 提高 Promise 的易用性非同步函式Promise
- Java 不可變集合 Stream流以及方法引用Java
- 8000字長文讓你徹底瞭解 Java 8 的 Lambda、函式式介面、Stream 用法和原理Java函式
- pytorch擬合sin函式PyTorch函式
- 為複合函式和反函式做好準備函式
- Java StreamJava
- java自定義equals函式和hashCode函式Java函式
- python中list方法與函式的學習總結Python函式
- 函式計算安裝依賴庫方法小結函式
- 全網最適合入門的物件導向程式設計教程:49 Python函式方法與介面-函式與方法的區別和lamda匿名函式物件程式設計Python函式
- JS 函式式概念: 管道 和 組合JS函式
- Generator與Promise的完美結合 -- async await函式誕生記PromiseAI函式
- Sanic websocket() 方法/函式Web函式
- Sanic exception() 方法/函式Exception函式