Java代码如何判断List集合中是否存在重复元素呢?

乔欣 Java经验 发布时间:2023-03-18 23:21:43 阅读数:171 1
下文笔者讲述使用java代码判断list集合是否存在重复元素的方法分享,如下所示

判断是否存在重复元素的实现思路

实现思路:
    方式1:
	   使用stream结合distinct转换后,然后比较大小
	方式2:
	   将元素放入set后,然后比较大小
	方式3:
	   for循环判断

判断是否存在重复元素的示例

package com.java265.test;
 
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
 
public class TestList {
	public static void main(String[] args) {
 
		List<String> list = new ArrayList<>();
 
		list.add("猫猫");
		for (int i = 0; i < 100000; i++) {
			list.add(i+"test");
		}
		list.add("猫猫");
 
		long start1 = System.currentTimeMillis();
		System.out.println("test1----" + test1(list));
		long end1 = System.currentTimeMillis();
		System.out.println("test耗时:" + (end1 - start1) + "ms");
 
		long start2 = System.currentTimeMillis();
		System.out.println("test2----" + test2(list));
		long end2 = System.currentTimeMillis();
		System.out.println("test耗时:" + (end2 - start2) + "ms");
	}
 
	private static Boolean test1(List list) {
 
		HashSet<String> set = new HashSet<>(list);
 
		Boolean result = set.size() == list.size() ? true : false;
 
		return result;
	}
 
	// 伴随for循环多次contains(内部也是循环),数据量大性能会明显降低
	private static Boolean test2(List<String> list) {
 
		List<String> list2 = new ArrayList<>();
 
		for (String one : list) {
 
			if (list2.contains(one)) {
				return false;
			}
			list2.add(one);
		}
		return true;
	}
}
 

 
 public static List test3(List<Integer> list) {
      List newList = list.stream().distinct().collect(Collectors.toList());
      return newList;
  }
 
  public static List test4(List<Integer> list) {
      TreeSet set = new TreeSet(list);
      //把List集合所有元素清空
      list.clear();
      //把HashSet对象添加至List集合,转回list
      list.addAll(set);
      return list;
  }
 
  public static List test5(List<Integer> list) {
      LinkedHashSet<Integer> linkedHashSet = new LinkedHashSet<>(list);
      //把List集合所有元素清空
      list.clear();
      //把linkedHashSet对象添加至List集合,转回会list
      list.addAll(linkedHashSet);
      return list;
  }
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202303/16791529436078.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者