java專案中流式表示式的使用
流式表示式流式表示式是jdk8帶來的java的新特性詳情: https://www.cnblogs.com/aiqiqi/p/11004208.htmlhttps://blog.csdn.net/weixin_37948888/article/details/96995312
流式表示式的常見使用的場景
//1列出班上超過85分的學生姓名,並按照分數降序輸出使用者名稱字@Test
public void test1() {
List<String> studentList = stuList.stream()
.filter(x->x.getScore()>85)
.sorted(Comparator.comparing(Student::getScore).reversed())
.map(Student::getName)
.collect(Collectors.toList());
System.out.println(studentList);
}
建立流的方式
* 通過陣列建立
* 通過集合建立
* 建立空的流
* 建立無限流(通過limit可以實現限制大小)
* 建立規律的無限流
普通流和並行流
並行流 就是把一個內容分成多個資料塊,並用不同的執行緒分別處理每個資料塊的流(其背後是Fork/Join框架)
Stream API可以宣告性地通過parallel()與sequential()在並行流與順序流之間進行切換。
List<String> strs = Arrays.asList("11212","dfd","2323","dfhgf");
//建立普通流
Stream<String> stream = strs.stream();
//建立並行流(即多個執行緒處理)
Stream<String> stream1 = strs.parallelStream();
在專案中經常使用的場景
//解決key值一對多的問題
Map<String, String> mmapCodeDeptName = mapAllDeptNameCode.stream().collect(Collectors.toMap( AllDeptNameCodePojo::getDeptCode,AllDeptNameCodePojo::getDeptName,(k,v)->v));
//解決 value可能為空的情況
Map<String, String> mmapCodeParentId = mapAllDeptNameCode.stream().collect(Collector.of(HashMap::new, (m, per)->m.put(per.getDeptCode(),per.getParentId()), (k, v)->v, Collector.Characteristics.IDENTITY_FINISH));
//擷取(場景:分批次處理集合 相當於 List.subList())
add.stream().skip(i * 1000).limit(1000).collect(Collectors.toList())
相關文章
- Java中Lambda表示式的使用Java
- Java8特性詳解 lambda表示式(二):流式處理中的lambdaJava
- 正規表示式在Java中的使用Java
- Java 中的 Lambda 表示式Java
- java中的正規表示式Java
- Java 8 中的 lambda 表示式Java
- Java中正規表示式的使用Java
- java中Lamdba表示式的用法整理Java
- Java8中的Lambda表示式Java
- Java 中 Emoji 的正規表示式Java
- Java中Lambda表示式的應用Java
- Java lambda表示式基本使用Java
- java_web:EL表示式的使用JavaWeb
- Java中Lambda表示式基礎及使用詳解Java
- Java中Lambda表示式的進化之路Java
- Java中lambda表示式詳解Java
- java中運算子與表示式Java
- [轉]Java 8 的 lambda 表示式 Java 8 的 lambda 表示式Java
- 正規表示式中的“環視”及實際專案應用
- Java Web之MySQL在專案中的使用JavaWebMySql
- Python中eval函式的表示式如何使用Python函式
- Java 8中的Lambda表示式最佳實踐Java
- SQLite中的SELECT子句使用表示式SQLite
- Java的Lambda表示式Java
- El表示式獲取專案名稱
- 利用 Lambda 表示式實現 Java 中的惰性求值Java
- 利用Lambda表示式進行Java中的惰性求值Java
- 探索Java語言與JVM中的Lambda表示式JavaJVM
- 一篇文章教會你使用Java8中的Lambda表示式Java
- angular中的表示式Angular
- SQLite中的表示式SQLite
- MongoDB正規表示式在索引中的使用MongoDB索引
- C#中的Lambda表示式和表示式樹C#
- C#分散式專案中是否使用MassTransitC#分散式
- 在JAVA中使用正規表示式 (轉)Java
- Java中使用lambda表示式自定義排序Java排序
- Java | Lambda表示式Java
- Lambda表示式(Java)Java