List<String> 결과List = new ArrayList<String>(new LinkedHashSet<String>(돌릴List));
HashSet은 중복된 애를 넣으려고 하면 이미 있으니까 더 안들어감
LinkedHashSet 과 HashSet의 차이점은 LinkedHashSet은 데이터를 넣은 순서가 보장된다는 것.
==> LinkedHashSet에
1 2 3 4 5 1 6 을 넣으면
1 2 3 4 5 6 으로 출력되며
HashSet은 1 2 3 4 5 6이 출력되지만 출력되는 순서는 보장되지 않음!
다른 방법 (속도 보장 못함)
List<String> deduped = list.stream().distinct().collect(Collectors.toList());
정렬은 .sort()
또 다른 방법
출처 : https://www.dotnetperls.com/duplicates-java
import java.util.ArrayList; import java.util.HashSet; public class Program { static ArrayList<String> removeDuplicates(ArrayList<String> list) { // Store unique items in result. ArrayList<String> result = new ArrayList<>(); // Record encountered Strings in HashSet. HashSet<String> set = new HashSet<>(); // Loop over argument list. for (String item : list) { // If String is not in set, add it to the list and the set. if (!set.contains(item)) { result.add(item); set.add(item); } } return result; } public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); list.add("dog"); list.add("cat"); list.add("dog"); list.add("dog"); list.add("cat"); list.add("bird"); // Remove duplicates from ArrayList of Strings. ArrayList<String> unique = removeDuplicates(list); for (String element : unique) { System.out.println(element); } } }
여기도 봐바. 리스트가 12개짜리지만...
http://selfinvestfriends.tistory.com/22
반응형
'logs' 카테고리의 다른 글
[cron] new crontab file is missing newline before EOF, can't install. (0) | 2022.05.26 |
---|---|
gcp] mariadb(mysql) 외부에서 접속 허용하기 (0) | 2019.09.24 |
Linux] 심볼릭링크] Putty로 접속한 Linux에 심볼릭링크를 생성해보자 (0) | 2018.02.12 |
virtual host 설정법 (0) | 2018.01.29 |