Programming-[Backend]/Java

[TIL]자바 리스트 중복 항목만 추출 : indexOf, lastIndexOf, HashSet 활용

컴퓨터 탐험가 찰리 2021. 10. 13. 21:32
728x90
반응형

자바의 리스트에서 중복된 항목들만 뽑아내기 위해 indexOf, lastIndexOf, HashSet을 활용한다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Test
  void overrodeTest() {
 
    List<String> list = List.of("사자""호랑이""사자""토끼""거북이""거북이""사자");
 
    HashSet<String> hs = new HashSet<>();
    for (String el : list) {
      if (list.indexOf(el) != list.lastIndexOf(el)) {
        hs.add(el);
      }
    }
 
    System.out.println("hs = " + hs);
  }
cs

 

출력결과

 

원리

 

List.indexOf : 리스트의 앞쪽부터 탐색하여 index값을 반환한다.

List.lastIndexOf : 리스트의 뒤쪽부터 탐색하여 index값을 반환한다.

 

중복된 항목이 있다면, 각각 리스트의 앞쪽, 뒤쪽부터 탐색한 값의 index가 다를 것이다. 그때, 값의 중복을 허용하지 않는 hashSet에 해당 요소를 넣는다.

 

 


 

참조

https://velog.io/@kdhyo/Java-객체Object-List-중복된-ID-목록만-뽑기추출

 

728x90
반응형