统一输入
public static List createList(){
List list = new ArrayList();
list.add(1);
list.add(10);
list.add(10);
list.add(2);
list.add(2);
list.add(3);
list.add(3);
list.add(3);
list.add(4);
list.add(5);
return list;
}
通过set中元素不重复的特性进行去重
public static void distinct1(List list) {
final boolean sta = null != list && list.size() > 0;
List doubleList= new ArrayList();
if (sta) {
Set set = new HashSet();
set.addAll(list);
doubleList.addAll(set);
}
System.out.println(doubleList);
}
[1, 2, 3, 4, 5, 10]
LinkedHashSet集合
public static void distinct2(List list) {
LinkedHashSet<Integer> linkedHashSet = new LinkedHashSet<>(list);
ArrayList<Integer> listWithoutDuplicates = new ArrayList<>(linkedHashSet);
System.out.println(listWithoutDuplicates);
}
[1, 10, 2, 3, 4, 5]
TreeSet集合
public static void distinct3(List list){
List listNew = new ArrayList<>(new TreeSet<>(list));
System.out.println(listNew);
}
[1, 2, 3, 4, 5, 10]
遍历List集合,将元素添加到另一个List集合中
public static void distinct4(List list) {
List listNew = new ArrayList<>();
for (Object o : list) {
if(!listNew.contains(o)){
listNew.add(o);
}
}
System.out.println(listNew);
}
[1, 10, 2, 3, 4, 5]
java8新特性stream
public static void distinct5(List list){
List myList = (List) list.stream().distinct().collect(Collectors.toList());
System.out.println(myList);
}
[1, 10, 2, 3, 4, 5]
双重for循环
public static void distinct6(List list){
for (int i = 0; i < list.size(); i++) {
for (int j = i + 1; j < list.size(); j++) {
if (list.get(i) == list.get(j)) {
list.remove(j);
j--;
}
}
}
System.out.println(list);
}
[1, 10, 2, 3, 4, 5]