Java arraylist 중복제거 방법 7가지

  • dataList는 생성되어 있음(생략).

1번 Logic

   resultList = new ArrayList<String>();
            for (int i = 0; i < dataList.size(); i++) {
                if (!resultList.contains(dataList.get(i))) {
                    resultList.add(dataList.get(i));
                }
            }

2번 HashSet

 HashSet<String> distinctData = new HashSet<String>(dataList);
            dataList = new ArrayList<String>(distinctData);

3번 TreeSet

TreeSet<String> distinctData = new TreeSet<String>(dataList);
            dataList = new ArrayList<String>(distinctData);

4번 Google guava

 resultList = Lists.newArrayList(Sets.newHashSet(dataList));

5번 Lambdas

  resultList = dataList.parallelStream().distinct().collect(Collectors.toList());

6번 LinkedHashSet

temp = new LinkedHashSet<String>();
            temp.addAll(dataList);
            dataList.clear();
            dataList.addAll(temp);

7번 Logic2

 for (int i = 0; i < dataList.size(); i++) {
                for (int j = 0; j < dataList.size(); j++) {
                    if (i == j) {
                    } else if (dataList.get(j).equals(dataList.get(i))) {
                        dataList.remove(j);
                    }
                }
            }

속도 비교

1번 > 7번 > HashSet > LinkedHashSet > TreeSet > Google guava > Lambdas

참조

ArrayList 중복제거