728x90
- 반복문을 이용하여 HashMap 객체에 key(원소), value(중복 횟수) 형식으로 저장하고 출력하는 방법입니다.
예제
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
public class ArrayListDupCheck {
public static void main(String[] args) {
// ArrayList 준비
ArrayList<String> list = new ArrayList<>(Arrays.asList("A", "B", "C", "A", "B", "A"));
System.out.println("원본 : " + list); // [A, B, C, A, B, A]
// ArrayList 원소 빈도수를 Map에 저장
Map<String, Integer> map = new HashMap<String, Integer>();
for (String str : list) {
Integer count = map.get(str);
if (count == null) {
map.put(str, 1);
} else {
map.put(str, count + 1);
}
}
// Map 출력
for (String key : map.keySet()) {
System.out.println(key + " : " + map.get(key));
}
}
}
결과
|
원본 : [A, B, C, A, B, A] |
|
A : 3 |
|
B : 2 |
|
C : 1 |
Map<String, Integer> map = new HashMap<String, Integer>();
ArrayList 원소와 중복 횟수를 저장할 HashMap 객체를 준비합니다.
for (String str : list) {
Integer count = map.get(str);
if (count == null) {
map.put(str, 1);
} else {
map.put(str, count + 1);
}
}
ArrayList를 순회하면서
ArrayList의 원소가 HashMap 객체에 key로 들어있는지 확인하고,
만약 없으면,
value(중복 횟수)를 1로 세팅하고 HashMap에 추가합니다.
만약 있으면, 중복되는 데이터 이므로,
value(중복 횟수)를 1 증가시켜서 HashMap에 추가합니다.
(HashMap은 key의 중복을 허용하지 않으므로, 같은 key 값이 추가되면, 값을 덮어씁니다.)
출처: https://hianna.tistory.com/572 [어제 오늘 내일:티스토리]
728x90
'JAVA' 카테고리의 다른 글
HashMap 사용 방법 및 예제 (0) | 2022.08.16 |
---|---|
ZonedDateTime과 LocalDateTime의 차이 (0) | 2022.08.05 |
다형성(Polymorphism) (0) | 2022.06.21 |
Optional.of 와 Optional.ofNullable 의 차이 (0) | 2022.05.13 |
롬복(lombok) .. 그 기능에 관해서 (0) | 2022.03.31 |