Lambda編程常用技巧

遍歷打印List

List<Integer> list= Arrays.asList(1,5,6,8,9,32,5,8,7,4,5);
list.forEach(System.out::println);

排序

List<Integer> list = Arrays.asList(1, 5, 6, 8, 9, 32, 5, 8, 7, 4, 5);
list.sort((o1, o2) -> o1-o2);

過濾

List<Integer> list = Arrays.asList(1, 5, 6, 8, 9, 32, 5, 8, 7, 4, 5);
list.stream().filter(num -> num>10).forEach(System.out::println);

注:過濾器 不會影響 原來的列表

從一個list生成另一個list1數據

List<String> list=Arrays.asList("apple","banana","orange");
List<Integer> list2=list.stream().map(String::length).collect(Collectors.toList());

注:map 對管道流通的每個元素進行一個轉換處理

累加

List<Integer> list = Arrays.asList(1, 5, 6, 8, 9, 32, 5, 8, 7, 4, 5);
Integer reduce = list.stream().reduce(0, (o1, o2) -> o1 + o2);
/**
 * indentity 起始值
 * (o1, o2) -> o1 + o2  等於 o1=o1+o2
 */
T reduce(T identity, BinaryOperator<T> accumulator);

分組

List<String> list=Arrays.asList("apple","banana","orange");
Map<Integer,List<String>> group=list.stream().collect(Collectors.groupingBy(String::length));

轉換大小寫

Optional.ofNullable("hello,world").map(String::toUpperCase).ifPresent(System.out::println);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章