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());
}
}