contains(list.get(i)); if(!isContains){ newList.add(list.get(i)); } } list.clear(); list.addAll(newList); return list; } 03、使用HashSet实现List去重(无序) 代码语言:javascript 代码运行次数:0 运行 AI代码解释 /**使用HashSet实现List去重(无序) * * @param list * */ public ...
HashSet快一些。。。 通过多次调用contains方法分别查询开头到结尾所有对象: 代码: long start = System.currentTimeMillis(); for(int i = 0; i<= 100000; i++){ s = new Student("name"+i,"addr"+i); System.out.println(i+"__"+list.contains(s)); // System.out.println(i+"__"+set.con...
} set.contains(o) :set 集合是用 HashMap 实现的,其中 add 方法将每个元素当做键,以一个object 对象作为值放在 HashMap 中,而 set 的 contains 方法调用了 HashMap 的 containKey 方法,直接获取传入元素的键值对信息做判断,所以 contains 的方法复杂度为 O(1) 。方法源码如下: // HashSet 中的方法 publi...
List<String>list=newArrayList<>();list.add("Apple");list.add("Banana");list.add("Cherry");booleanexists=list.contains("Banana");// O(n)操作 1. 2. 3. 4. 5. 2. 使用Set替代List 为了提高查找效率,我们可以考虑使用HashSet或TreeSet等集合。与List相比,这些集合在查找元素时提供了更高的性能。
listNew.add(str); } }longcurrentTimeMillis1_2 =System.currentTimeMillis(); System.out.println("第二种:遍历后判断赋给另一个list集合,利用List的contains方法循环遍历:"+(currentTimeMillis1_2 -currentTimeMillis1_1));//第三种:set去重Set set =newHashSet(); ...
Java集合中contains方法的效率对比分析 最近让部门技术大佬帮忙代码review的时候,他给我指出了一个小的技术细节,就是对于集合的contains方法尽量选用Set而不是List,平时没怎么注意,仔细看了下源码,大佬就是大佬,技术细节也把握的死死的。 java集合List、Set中均有对集合中元素是否存在的判断方法contains(Object o);Map...
list, int queryValue) { long startTime = System.nanoTime(); list.contains(queryValue); long endTime = System.nanoTime(); return endTime - startTime; } private static long measureQueryTime(Set<Integer> set, int queryValue) { long startTime = System.nanoTime(); set.contains(quer...
TreeSet set =new TreeSet(list); //把List集合所有元素清空 list.clear(); //把TreeSet对象添加至List集合 list.addAll(set); returnlist; } 04 实现思路:利用List集合contains方法循环遍历,先创建新的List集合,接着循环遍历原来的List集合,判断新集合是否包含有旧集合,如果有,则不添加至新集合,否则添加。最...
distinctList.add(element); } } // 打印去重后的结果 for (Object element : distinctList) { System.out.println(element); } 需要注意的是,List的contains方法会遍历整个List来寻找指定的元素,当List的元素较多时,这种方法的效率可能较低。如果对性能有较高要求,可以考虑使用HashSet或LinkedHashSet来进行去重操...