package com.example.java8;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Description TODO
* @Author wuqingyan
* Date 2020/3/2 17:50
* Modify Log
**/
public class ListTest {
public static void main(String[] args) {
List<User> list = new ArrayList();//原始庫位
list.add(new User("123",18));
list.add(new User("456",18));
list.add(new User("123",18));
list.add(new User("",18));
list.add(new User("",18));
List<User> list1 = new ArrayList(); //庫位限制後庫位
list1.add(new User("123",18));
list1.add(new User("456",18));
list1.add(new User("",18));
list1.add(new User("",18));
//原始庫位統計map
Map<String, Long> map1 = list.stream().collect(Collectors.groupingBy(p -> p.getName(),Collectors.counting()));
System.out.println(map1.toString());
//限制後統計map
Map<String, Long> map2 = list1.stream().collect(Collectors.groupingBy(p -> p.getName(),Collectors.counting()));
System.out.println(map2.toString());
List<User> list2 = new ArrayList<>();
//取出不滿足條件的map 限制後的次數
for(String s:map2.keySet()){
if(map2.get(s) == map1.get(s)){
list2.addAll(list1.parallelStream().filter(a -> a.getName().equals(s)).collect(Collectors.toList()));
}
}
System.out.println(list2.toString());
}
}