본문 바로가기

Java/문법

[Java] List에서 중복 값의 빈도 세기 - Collections.frequency(), Map<String, Integer> map = new HashMap<String, Integer>()

1. 단일 값의 중복 값 세기

Collections.frequency()

ℹ️ 특정 컬렉션에서 특정 객체의 빈도를 계산하는 메서드입니다.
  • 매개변수
    • c: o의 빈도를 결정할 컬렉션
    • o: 빈도 결정하려는 대상
    • 컬렉션 c가 null인 경우 NullPointerException이 발생합니다.
import java.util.*; 

public class GFG 
{ 
	public static void main(String[] args) 
	{ 
		// Let us create a list with 4 items 
		ArrayList<String> list = 
						new ArrayList<String>(); 
		list.add("code"); 
		list.add("code"); 
		list.add("quiz"); 
		list.add("code"); 
	
		// count the frequency of the word "code" 
		System.out.println("The frequency of the word code is: "+ 
								Collections.frequency(list, "code"));
        // The frequency of the word code is: 3 (code 문자열이 리스트에 3번 등장하므로)
	} 
}

2. 각 값의 빈도 세기

Map<String, Integer> map = new HashMap<String, Integer>()

ℹ️ 값의 빈도를 한 번만 계산하므로 성능면에서 효율적입니다.
import java.util.*;

public class Main {
    public static void main(String[] args) {
        // 리스트 생성
        List<String> list = new ArrayList<>(Arrays.asList("apple", "banana", "apple", "orange", "banana", "apple"));

        // 빈도 계산을 위한 Map
        Map<String, Integer> frequencyMap = new HashMap<>();

        // 각 요소의 빈도를 계산
        for (String element : list) {
            frequencyMap.put(element, frequencyMap.getOrDefault(element, 0) + 1);
        }

        // 중복 값만 출력
        for (Map.Entry<String, Integer> entry : frequencyMap.entrySet()) {
            if (entry.getValue() > 1) {
                System.out.println(entry.getKey() + " appears " + entry.getValue() + " times.");
            }
        }
    }
}

 

  • Map<String, Integer> frequencyMap = new HashMap();
    • frequencyMap: String 값의 빈도를 저장하는 Map
    • HashMap: Map의 인터페이스 구현체
  • 빈도 계산
    • 추가 필요

 

Java.util.Collections.frequency() in Java - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

반응형