package java8;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author zhongshanhuang
* @company caih
* @email [email protected]
* @create 2020-01-15 11:35
*/
public class StreamDemo {
//Streaméç¨è¯æ³:å建Stream + 转æ¢Stream + èåï¼ ä¾å¦ï¼ nums.stream().filter(num -> num != null).count();
//1ï¼è½¬æ¢
//1-1, distinct
//1-2, filter
//1-3, map
//1-4, flatMap
//1-5, peek
//1-6, limit
//1-7, skip
//2, èå
//2-1, collect
//2-2, sum
//2-3, count
//2-4, max/min
public static void main(String[] args) {
List nums = new ArrayList<>(Arrays.asList(1, 1, 1, 1, 1, null, 3, 4, null, 6));
Stream.distinct(nums);
Stream.filter(nums);
Stream.map(nums);
Stream.collect2Map(nums);
Stream.collect2Set(nums);
}
}
class Stream {
//1, distinct
public static void distinct(List nums) {
List collect = nums.stream().distinct().collect(Collectors.toList());
System.out.println(collect);
}
//2, filter
public static void filter(List nums) {
List collect = nums.stream().filter(Objects::nonNull).collect(Collectors.toList());
System.out.println(collect);
}
//3, map
public static void map(List nums) {
Set collect = nums.stream().map(String::valueOf).collect(Collectors.toSet());
System.out.println(collect); //[1, 3, null, 4, 6]
}
//4-1. collect.toMap ,注æï¼å¦æä¸å»éï¼å彿°å¢çkey-valueç¸åæ¶ä¼æ¥é
public static void collect2Map(List nums){
Map collect = nums.stream().map(String::valueOf).distinct().collect(Collectors.toMap(s -> s, s -> Math.random()));
System.out.println(collect);
}
//4-2. collect.toSet
public static void collect2Set(List nums){
Set collect = nums.stream().map(String::valueOf).collect(Collectors.toSet());
System.out.println(collect);
}
//4-3. collect.toList
public static void collect2List(List nums){
List collect = nums.stream().map(String::valueOf).collect(Collectors.toList());
System.out.println(collect);
}
}