>Java >java지도 시간 >문자열의 문자 빈도를 효율적으로 계산하는 방법은 무엇입니까?

문자열의 문자 빈도를 효율적으로 계산하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-31 07:21:30727검색

How to Efficiently Count Character Frequencies in a String?

문자열의 문자 빈도 계산

프로그래밍의 일반적인 작업은 주어진 문자열에서 문자의 빈도를 계산하는 것입니다. "aasjjikkk"라는 문자열이 있다고 가정해 보겠습니다. 우리는 "2 'a', 1 's', 2 'j', 1 'i', 3 'k'"가 되는 각 고유 문자의 개수를 확인하려고 합니다.

해결책 Java 맵 사용

한 가지 효율적인 솔루션은 키(이 경우 문자)를 값(발생 횟수)과 연결하는 Java 맵을 활용하는 것입니다. 문자열을 탐색하여 각 문자가 이미 맵에 있는지 확인합니다. 그렇다면 개수를 늘립니다. 그렇지 않으면 1개로 삽입합니다.

<code class="java">Map<Character, Integer> map = new HashMap<>();
String s = "aasjjikkk";
for (int i = 0; i < s.length(); i++) {
    char c = s.charAt(i);
    Integer val = map.get(c);
    if (val != null) {
        map.put(c, val + 1);
    }
    else {
        map.put(c, 1);
    }
}

이 접근 방식은 키-값 쌍 형식으로 문자 수를 자연스럽게 표현합니다.

다음을 사용하는 대체 솔루션 Multiset

또는 Guava의 Multiset 데이터 구조를 사용하면 맵을 명시적으로 유지하지 않고도 요소의 발생 횟수를 계산할 수 있습니다.

<code class="java">Multiset<Character> multiset = HashMultiset.create();
String s = "aasjjikkk";
for (int i = 0; i < s.length(); i++) {
    char c = s.charAt(i);
    multiset.add(c);
}</code>

이제 multiset은 문자열입니다.

위 내용은 문자열의 문자 빈도를 효율적으로 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.