[Info]Tags categorized posts and contents patterns..

[AJAX] Ajax Code E xamples.. [Book] About the book.. [CSS] CSS Code E xamples.. [DB] Sql Code E xamples.. [DEV] All development stor...

2016년 4월 5일 화요일

[JAVA]List에서 중복요소 제거한 List로 만들기..

출처 : Outsider's Dev Story https://blog.outsider.ne.kr/

자바에서 List를 사용하다가 List가 가진 요소들 중 중복된 것을 제거하고 유일한 값들만 가지고 있는 List를 만들어야 할 필요가 있었습니다. 루프를 돌면서 유니크한 값을 찾아서 새로운 배열을 만들자니 약간 귀찮았는데 해쉬셋을 이용해서 간단하게 유일한 요소들만 가진 List로 만들 수 있더군요.

Java
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
List<Integer> items = new ArrayList<Integer>();
items.add(1);
items.add(2);
items.add(1);
items.add(2);
items.add(3);
items.add(3);
System.out.println(items); // [1, 2, 1, 2, 3, 3]

List<Integer> uniqueItems = new ArrayList<Integer>(new HashSet<Integer>(items));
System.out.println(uniqueItems); // [1, 2, 3]

중복되는 요소들을 가질 리스트를 HashSet으로만든뒤에 다시 List로 변환을 하면 중복요소가 사라진 유일한 요소들만 가진 리스트를 만들 수 있습니다.

덧) 저의 경우에는 필요치 않았지만 HashSet을 사용할 경우 순서가 지켜지지 않을 수 있다는 얘기가 있었습니다.

덧2) 김은석님이 List의 contains와의 성능비교를 공유해 주셨습니다.


My Comment..
흠.. 현재 SM 소스를 검색해보니 과거 2013년에 사용한 흔적이 있었다.. 거기에 주석도 코멘트 했었구나.. 배열처리 중복제거 라고.. ㅋㅋㅋ.. 햄보다 2년정도 늦게 쓰긴 했는데 쓰긴 했었구나.. 다만 햄은 기록을 해서 새로운 것에 대해서 항상 남겨두는 편인데 나는 그게 아니였다능.. 무튼 지금이라도 검색해서 다시 한번 기억속에서 상기시키니 스믈스믈 떠오르고 있다..

댓글 없음:

댓글 쓰기