List 去重的几种方法

94 阅读1分钟

🔔HashSet去重

import java.util.HashSet;
​
HashSet<Integer> set = new HashSet<>();
set.add(1);
set.add(2);
set.add(2);
System.out.println(set); // [1, 2]

🔔TreeSet去重

import java.util.TreeSet;
​
TreeSet<Integer> set = new TreeSet<>();  
set.add(2);
set.add(1);
set.add(2);
System.out.println(set); // [1, 2]  

🔔LinkedHashSet去重

import java.util.LinkedHashSet;
​
LinkedHashSet<Integer> set = new LinkedHashSet<>();
set.add(2);
set.add(1); 
set.add(2);
System.out.println(set); // [2, 1]

🔔迭代器去重

import java.util.ArrayList;
import java.util.Iterator;
​
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(2);
​
Iterator<Integer> it = list.iterator();
while (it.hasNext()) {
    Integer i = it.next();
    if (list.indexOf(i) != list.lastIndexOf(i)) {
        it.remove();
    }
}
​
System.out.println(list); // [1]  

🔔Stream去重

import java.util.stream.Collectors;
​
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2); 
list.add(2);
​
List<Integer> distinctList = list.stream()
                                .distinct()
                                .collect(Collectors.toList()); 
​
System.out.println(distinctList); // [1, 2]

🔔contains去重

ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(2);
​
for (Integer i : list) {
    if (!list.contains(i)) {
        list.remove(i);
    }
}
​
System.out.println(list); // [1, 2]

🔔写在最后

如果大家对相关文章感兴趣,可以关注公众号"架构殿堂",会持续更新AIGC,java基础面试题, netty, spring boot, spring cloud等系列文章,一系列干货随时送达!