使用 Java 删除 ArrayList 中的重复元素

使用 Java 删除 ArrayList 中的重复元素
1. 使用 Iterator

import java.util.*;

public class Test {
	public static <T> List<T> removeDuplicates(List<T> list) {
		List<T> newList = new ArrayList<T>();
		for (T element : list) {
			if (!newList.contains(element)) {
				newList.add(element);
			}
		}
		return newList;
	}

	public static void main(String args[]) {
		List<Integer> list = new ArrayList<>(Arrays.asList(1, 10, 1, 2, 2, 3, 3, 10, 3, 4, 5, 5));
		System.out.println("ArrayList with duplicates: " + list);
		List<Integer> newList = removeDuplicates(list);
		System.out.println("ArrayList with duplicates removed: " + newList);
	}
}

ArrayList with duplicates: [1, 10, 1, 2, 2, 3, 3, 10, 3, 4, 5, 5]
ArrayList with duplicates removed: [1, 10, 2, 3, 4, 5]

2. 使用 LinkedHashSet

import java.util.*;

public class Test {
	public static <T> List<T> removeDuplicates(List<T> list) {
		Set<T> set = new LinkedHashSet<>();
		set.addAll(list);
		list.clear();
		list.addAll(set);
		return list;
	}

	public static void main(String args[]) {
		List<Integer> list = new ArrayList<>(Arrays.asList(1, 10, 1, 2, 2, 3, 10, 3, 3, 4, 5, 5));
		System.out.println("ArrayList with duplicates: " + list);
		List<Integer> newList = removeDuplicates(list);
		System.out.println("ArrayList with duplicates removed: " + newList);
	}
}

ArrayList with duplicates: [1, 10, 1, 2, 2, 3, 10, 3, 3, 4, 5, 5]
ArrayList with duplicates removed: [1, 10, 2, 3, 4, 5]

3. 使用 Java 8 Stream.distinct()

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Test {
	public static void main(String[] args) {
		List<Integer> list = new ArrayList<>(Arrays.asList(1, 10, 1, 2, 2, 3, 10, 3, 3, 4, 5, 5));
		System.out.println("ArrayList with duplicates: " + list);
		List<Integer> newList = list.stream().distinct().collect(Collectors.toList());
		System.out.println("ArrayList with duplicates removed: " + newList);
	}
}

ArrayList with duplicates: [1, 10, 1, 2, 2, 3, 10, 3, 3, 4, 5, 5]
ArrayList with duplicates removed: [1, 10, 2, 3, 4, 5]

原文地址:https://www.cnblogs.com/hgnulb/p/10490540.html