1,测试数据
public class STest {
public static void main(String[] args) {
Map<String, String> hashMap = new HashMap<>();
Map<String, String> hashMap1 = new HashMap<>();
ArrayList<Map<String, String>> list = new ArrayList<>();
hashMap.put("PersonId", "ssss");
hashMap.put("PersonName", "dddd");
hashMap.put("FaceId", "ffff");
hashMap1.put("PersonId", "ssss");
hashMap1.put("PersonName", "dddd1");
hashMap1.put("FaceId", "ffff1");
list.add(hashMap);
list.add(hashMap1);
// 取出hashmap集合中key 为 m.get("PersonId") 的元素,并组成新的 list;
List<String> personId = list.stream().map(m ->
m.get("PersonId")).collect(Collectors.toList());
System.out.println("personId=====>"+personId);
// 根据hashmap集合中key 为 m.get("PersonId") 的元素进行去重,保留旧元素
TreeSet<Map<String, String>> personId1 =
list.stream().collect(Collectors.toCollection(
() -> new TreeSet<>(Comparator.comparing(m -> m.get("PersonId")))
));
System.out.println("personId1=====>"+personId1);
// 根据hashmap集合中key 为 m.get("PersonId") 的元素进行去重,保留旧元素,组成新的List
ArrayList<Map<String, String>> listN = null;
listN= list.stream().collect(Collectors.collectingAndThen(
Collectors.toCollection(
() -> new TreeSet<>(Comparator.comparing(m -> m.get("PersonId")))
),ArrayList::new));
System.out.println("listN=====>"+listN);
}
}
2,结果
personId=====>[ssss, ssss]
personId1=====>[{FaceId=ffff, PersonName=dddd, PersonId=ssss}]
listN=====>[{FaceId=ffff, PersonName=dddd, PersonId=ssss}]
参考: