使用LinkedHashSet去重

  1. public class RemoveDuplicateExample {
  2. public static void main(String[] args) {
  3. //使用LinkedHashSet去重
  4. ArrayList<Integer> numbersList = new ArrayList<Integer>(Arrays.asList(1, 1, 2, 3, 3, 3, 4, 5, 6, 6, 6, 7, 8));
  5. List<Integer> result = new ArrayList<Integer>(numbersList.size());
  6. LinkedHashSet<Integer> hashSet = new LinkedHashSet<>(numbersList);
  7. ArrayList<Integer> listWithoutDuplicates = new ArrayList<>(hashSet);
  8. System.out.println(listWithoutDuplicates);
  9. }
  10. }

使用HashSet去重

  1. public class RemoveDuplicateExample {
  2. public static void main(String[] args) {
  3. //使用HashSet去重
  4. //方式一:
  5. ArrayList<Integer> numbersList = new ArrayList<Integer>(Arrays.asList(1, 1, 2, 3, 3, 3, 4, 5, 6, 6, 6, 7, 8));
  6. HashSet h = new HashSet(numbersList);
  7. numbersList.clear();
  8. numbersList.addAll(h);
  9. System.out.println(numbersList);
  10. //方式二:
  11. HashSet<Integer> set = new HashSet<Integer>(numbersList.size());
  12. List<Integer> result = new ArrayList<Integer>(numbersList.size());
  13. for (Integer integer : numbersList) {
  14. if (set.add(integer)) {
  15. result.add(integer);
  16. }
  17. }
  18. numbersList.clear();
  19. numbersList.addAll(result);
  20. System.out.println(numbersList);
  21. }
  22. }

使用Stream流去重

  1. public class RemoveDuplicateExample {
  2. public static void main(String[] args) {
  3. //使用Stream去重
  4. ArrayList<Integer> numbersList = new ArrayList<Integer>(Arrays.asList(1, 1, 2, 3, 3, 3, 4, 5, 6, 6, 6, 7, 8));
  5. List<Integer> listWithoutDuplicates = numbersList.stream().distinct().collect(Collectors.toList());
  6. System.out.println(listWithoutDuplicates);
  7. }
  8. }

使用List的contains方法去重

  1. public class RemoveDuplicateExample {
  2. public static void main(String[] args) {
  3. //使用contains方法去重
  4. ArrayList<Integer> numbersList = new ArrayList<Integer>(Arrays.asList(1, 1, 2, 3, 3, 3, 4, 5, 6, 6, 6, 7, 8));
  5. List<Integer> result = new ArrayList<Integer>(numbersList.size());
  6. for (Integer integer : numbersList) {
  7. if (!result.contains(integer)) {
  8. result.add(integer);
  9. }
  10. }
  11. numbersList.clear();
  12. numbersList.addAll(result);
  13. System.out.println(numbersList);
  14. }
  15. }

使用双重for去重

  1. public class RemoveDuplicateExample {
  2. public static void main(String[] args) {
  3. //使用双重for去重
  4. ArrayList<Integer> numbersList = new ArrayList<Integer>(Arrays.asList(1, 1, 2, 3, 3, 3, 4, 5, 6, 6, 6, 7, 8));
  5. for (int i = 0; i < numbersList.size(); i++) {
  6. for (int j = 0; j < numbersList.size(); j++) {
  7. if(i!=j&&numbersList.get(i)==numbersList.get(j)) {
  8. numbersList.remove(numbersList.get(j));
  9. }
  10. }
  11. }
  12. System.out.println(numbersList);
  13. }
  14. }