Java代码如何判断List集合中是否存在重复元素呢?
下文笔者讲述使用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; }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。