List優雅去重

1.lambda方式

 1.1整體去重

List<TmpTrainingData> collect = list.stream().distinct().collect(Collectors.toList());

 1.2根據某個或者某幾個字段去重

   1.2.1根據一個字段去重  

List<User> userList = users.stream() .collect(
        Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(user ->        user.getName()))), ArrayList::new)); 

   1.2.2根據多個字段去重

List<User> userList = users.stream() .collect(
        Collectors.collectingAndThen(
                Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(user -> user.getName()+";"+user.getId()))), ArrayList::new));

2.利用linkedHashSet去重

  LinkedHashSet<TmpTrainingData> tmpTrainingData1 = new LinkedHashSet<>(list);
        ArrayList<TmpTrainingData> tmpTrainingData2 = new ArrayList<>(tmpTrainingData1);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章