Stream,Optional笔记
Optional是一个包含可选值的包装类,一定程度上可以解决空指针异常
好文链接:https://blog.csdn.net/mu_wind/article/details/109516995
package com.wen;
import java.util.Optional;
public class Main {
public static void main(String[] args) {
Optional<Object> empty = Optional.ofNullable(90);
System.out.println(empty.get()); //90
System.out.println(empty.isPresent()); //true
}
}
package com.wen;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
List<Integer> list = Arrays.asList(1, 5, 6, 7, 8, 90);
list.stream().filter(val -> val>7).forEach(System.out::println); //8 90
long count = list.stream().filter(val -> val > 5).count(); //4
List<Integer> collect = list.stream().filter(val -> val > 6).map(val -> val + 10).collect(Collectors.toList()); //17 18 100
List<String> strings = Arrays.asList("1,23", "456");
List<String> collect1 = strings.stream().flatMap(val -> {
String[] split = val.split(",");
Stream<String> stream = Arrays.stream(split);
return stream;
}).collect(Collectors.toList()); //1,23,456
}
}
其中Collectors.counting( )是Map中的value,若用Collectors.toList( )则表示原有List
package com.wen;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
List<Stu> list = new ArrayList<>();
Stu stu1 = new Stu(17, "111");
Stu stu2 = new Stu(17, "222");
Stu stu3 = new Stu(18, "333");
list.add(stu1);
list.add(stu2);
list.add(stu3);
Map<Integer, Long> collect = list.stream().collect(Collectors.groupingBy(Stu::getAge, Collectors.counting()));
System.out.println(collect);
}
}

浙公网安备 33010602011771号