使用LinkedHashSet去重
public class RemoveDuplicateExample { public static void main(String[] args) { //使用LinkedHashSet去重 ArrayList<Integer> numbersList = new ArrayList<Integer>(Arrays.asList(1, 1, 2, 3, 3, 3, 4, 5, 6, 6, 6, 7, 8)); List<Integer> result = new ArrayList<Integer>(numbersList.size()); LinkedHashSet<Integer> hashSet = new LinkedHashSet<>(numbersList); ArrayList<Integer> listWithoutDuplicates = new ArrayList<>(hashSet); System.out.println(listWithoutDuplicates); }}
使用HashSet去重
public class RemoveDuplicateExample { public static void main(String[] args) { //使用HashSet去重 //方式一: ArrayList<Integer> numbersList = new ArrayList<Integer>(Arrays.asList(1, 1, 2, 3, 3, 3, 4, 5, 6, 6, 6, 7, 8)); HashSet h = new HashSet(numbersList); numbersList.clear(); numbersList.addAll(h); System.out.println(numbersList); //方式二: HashSet<Integer> set = new HashSet<Integer>(numbersList.size()); List<Integer> result = new ArrayList<Integer>(numbersList.size()); for (Integer integer : numbersList) { if (set.add(integer)) { result.add(integer); } } numbersList.clear(); numbersList.addAll(result); System.out.println(numbersList); }}
使用Stream流去重
public class RemoveDuplicateExample { public static void main(String[] args) { //使用Stream去重 ArrayList<Integer> numbersList = new ArrayList<Integer>(Arrays.asList(1, 1, 2, 3, 3, 3, 4, 5, 6, 6, 6, 7, 8)); List<Integer> listWithoutDuplicates = numbersList.stream().distinct().collect(Collectors.toList()); System.out.println(listWithoutDuplicates); }}
使用List的contains方法去重
public class RemoveDuplicateExample { public static void main(String[] args) { //使用contains方法去重 ArrayList<Integer> numbersList = new ArrayList<Integer>(Arrays.asList(1, 1, 2, 3, 3, 3, 4, 5, 6, 6, 6, 7, 8)); List<Integer> result = new ArrayList<Integer>(numbersList.size()); for (Integer integer : numbersList) { if (!result.contains(integer)) { result.add(integer); } } numbersList.clear(); numbersList.addAll(result); System.out.println(numbersList); }}
使用双重for去重
public class RemoveDuplicateExample { public static void main(String[] args) { //使用双重for去重 ArrayList<Integer> numbersList = new ArrayList<Integer>(Arrays.asList(1, 1, 2, 3, 3, 3, 4, 5, 6, 6, 6, 7, 8)); for (int i = 0; i < numbersList.size(); i++) { for (int j = 0; j < numbersList.size(); j++) { if(i!=j&&numbersList.get(i)==numbersList.get(j)) { numbersList.remove(numbersList.get(j)); } } } System.out.println(numbersList); }}