JAVA-List根据字段值判断是否有重复的数据

通过Set的特性去重,根据list长度的变化,得出结果

private static Boolean test(List list) {
		HashSet<String> set = new HashSet<>(list);
		Boolean result = set.size() == list.size() ? true : false;
		return result;
}

public static List test(List<Integer> list) {
      TreeSet set = new TreeSet(list);
      //把List集合所有元素清空
      list.clear();
      //把TreeSet对象添加至List集合,转回list
      list.addAll(set);
      return list;
  }

public static List test(List<Integer> list) {
      LinkedHashSet<Integer> linkedHashSet = new LinkedHashSet<>(list);
      //把List集合所有元素清空
      list.clear();
      //把linkedHashSet对象添加至List集合,转回会list
      list.addAll(set);
      return list;
  }

通过stream的去重方法获取新的list.或者根据对象list的某个字段去重,得到新的列表,然后判断长度是否有变化

public static List test(List<Integer> list) {
      List newList = list.stream().distinct().collect(Collectors.toList());
      return newList;
  }

public static List test(List<User> list) {
      List newList = list.stream().map(User::getName()).distinct().collect(Collectors.toList());
      return newList;
  }

再来个笨方法

遍历后判断赋给另一个list集合

List newList = new ArrayList(); 
for (Integer integer : list) { 
    if(!newList.contains(integer)){ 
        newList.add(integer); 
    } 
} 
System.out.println(“赋值新list去重:”+newList); 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 要判断List对象集合中某个字段是否存在空数据,可以使用stream流中的filter方法来过滤出符合条件的元素。首先,创建一个验证对象,设置需要验证的字段为空,然后使用filter方法对List集合进行过滤,判断是否存在字段为空的元素。如果存在空数据,则返回true,否则返回false。以下是一个示例代码: ```java List<People> peopleList = new ArrayList<>(); // 添加对象到集合中 // 验证的对象 People verifyPeople = new People(); verifyPeople.setName(null); // 设置需要验证的字段为空 boolean hasEmptyData = peopleList.stream() .filter(item -> item.getName() == null) // 过滤出字段为空的元素 .findAny() .isPresent(); if (hasEmptyData) { System.out.println("存在字段为空的数据"); } else { System.out.println("不存在字段为空的数据"); } ``` 在上述代码中,我们使用了stream流的filter方法来过滤出字段为空的元素,然后使用findAny方法找到任意一个符合条件的元素,最后使用isPresent方法判断是否存在符合条件的元素。如果存在字段为空的数据,则输出"存在字段为空的数据",否则输出"不存在字段为空的数据"。 #### 引用[.reference_title] - *1* [List集合中的对象判断某个字段是否重复-去重](https://blog.csdn.net/weixin_42310713/article/details/120200552)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Java集合列表,对集合中某个字段判断是否存在](https://blog.csdn.net/qq_45502336/article/details/126299524)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值