一.通过Java8的Stream流实现去重(有序)
public static void main(String[] args) {
List<String> list = new ArrayList<>();
//添加集合元素
Collections.addAll(list,"E","A","B","A","C","B","A","D","C","F");
//通过Java8的stream流实现去重
List<String> newList = list.stream().distinct().collect(Collectors.toList());
//输出结果
System.out.println("--------原集合--------:"+list);
System.out.println("通过stream流去重后的集合:"+newList);
}
输出结果:
二.通过Set集合及其特性去重
HashSet(无序)
public static void main(String[] args) {
List<String> list = new ArrayList<>();
//添加集合元素
Collections.addAll(list,"E","A","B","A","C","B","A","D","C","F");
//通过HashSet实现去重
//方法一:
HashSet<String> set = new HashSet<>(list);
//方法二:
List<String> newList = new ArrayList<>(new HashSet<>(list));
//输出结果
System.out.println("------原集合------:"+list);
System.out.println("HashSet去重后的集合:"+set);
System.out.println("HashSet去重后的集合:"+newList);
}
LinkedHashSet(有序)
public static void main(String[] args) {
List<String> list = new ArrayList<>();
//添加集合元素
Collections.addAll(list,"E","A","B","A","C","B","A","D","C","F");
//通过LinkedHashSet及特性实现去重
//方法一:
LinkedHashSet<String> set = new LinkedHashSet<>(list);
//方法二:
List<String> newList = new ArrayList<>(new LinkedHashSet<>(list));
//输出结果
System.out.println("---------原集合---------:"+list);
System.out.println("LinkedHashSet去重后的集合:"+set);
System.out.println("LinkedHashSet去重后的集合:"+newList);
}
TreeSet(无序)
public static void main(String[] args) {
List<String> list = new ArrayList<>();
//添加集合元素
Collections.addAll(list,"E","A","B","A","C","B","A","D","C","F");
///通过TreeSet特性实现去重
//方法一
TreeSet<String> set = new TreeSet<>(list);
//方法二
List<String> newList = new ArrayList<>(new TreeSet<>(list));
//输出结果
System.out.println("--------原集合--------:"+list);
System.out.println("TreeSet去重后的集合:"+set);
System.out.println("TreeSet去重后的集合:"+newList);
}
输出结果:
三. 通过contains方法遍历判断去重(有序)
public static void main(String[] args) {
List<String> list = new ArrayList<>();
//添加集合元素
Collections.addAll(list,"E","A","B","A","C","B","A","D","C","F");
List<String> newList = new ArrayList<>();
List<String> newList2 = new ArrayList<>();
//通过contains方法遍历判断去重
//方法一
for(String a:list){
if (!newList.contains(a)){
newList.add(a);
}
}
//方法二
list.forEach(b -> {
if (!newList2.contains(b)){
newList2.add(b);
}
});
//输出结果
System.out.println("--------------原集合--------------:"+list);
System.out.println("通过contains方法循环判断去重后的集合:"+newList);
System.out.println("通过contains方法循环判断去重后的集合:"+newList2);
}
输出结果:
四.通过remove方法去重(有序)
public static void main(String[] args) {
List<String> list = new ArrayList<>();
//添加集合元素
Collections.addAll(list,"E","A","B","A","C","B","A","D","C","F");
System.out.println("原集合:"+list);
//通过contains方法遍历判断去重
if (list.size() > 0){
for (int i = 0; i < list.size() - 1; i++) {
for (int j = list.size() - 1; j > i; j--) {
if (list.get(j).equals(list.get(i))) {
list.remove(j);
}
}
}
}
//输出结果
System.out.println("新集合:"+list);
}
输出结果: