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
반응형
'Programming-[Backend] > Java' 카테고리의 다른 글
[TIL][TDD] TDD 3편. 인터페이스 분리로 테스트는 분리, 서비스는 트랜잭션으로 묶기 (0) | 2021.11.16 |
---|---|
[TIL][TDD] 테스트 코드 기반으로 짜되, service 코드에서 의미적으로(기능적으로) 분리해가며 작성하기 (0) | 2021.11.09 |
[패턴][TIL] HashSet으로 자바 List String 중복검사, equals, hashCode Override (2) | 2021.10.07 |
[TIL][링크] Predicate, BooleanExpression의 개념과 차이점 (2) | 2021.08.25 |
[링크] 자바 final 요약 (0) | 2021.05.30 |