list 배열 저장 키 값 형식 데이터 인 스 턴 스
핵심 코드
List<Map.Entry<Integer,Integer>> list=new ArrayList<Map.Entry<Integer,Integer>>(map.entrySet());
잔말 말고 실례 를 좀 봅 시다
고전 제목: 배열 의 앞 K 개의 고주파 요 소 를 찾 습 니 다.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class LeetCode347 k _ {
public static void main(String[] args) {
int[] nums= {
1,5,2,4,8,7,5,11,45,5,2,14,2,5,8,11,8,5,4};
int k=5;
int[] ans=topKFrequent(nums, k);
System.out.println(Arrays.toString(ans));
}
public static int[] topKFrequent(int[] nums, int k) {
int[] ans=new int[k];
Map<Integer,Integer> map=new HashMap();
for(int i=0;i<nums.length;++i){
map.put(nums[i],map.getOrDefault(nums[i],0)+1);
}
// List
List<Map.Entry<Integer,Integer>> list=new ArrayList<Map.Entry<Integer,Integer>>(map.entrySet());
// list , comparator compare
Collections.sort(list, new Comparator<Map.Entry<Integer, Integer>>() {
@Override
public int compare(Map.Entry<Integer, Integer> o1, Map.Entry<Integer, Integer> o2) {
// value , o1.getValue()-o2.getValue();
return o2.getValue()-o1.getValue();
}
});
for(int i=0;i<k;++i){
ans[i]=list.get(i).getKey();
}
return ans;
}
}
출력 표시: [5, 2, 8, 4, 11]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
javascript 빠른 요약함수 레벨 스코프이므로 전역 함수 외부에서 생성한 변수는 모두 전역 변수이며 for문의 변수 선언문에서 선언한 변수를 for문 외부에서 참조할 수 있다. 클로저 : 반환된 내부함수가 자신이 선언됐을 때의 환경(Lex...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.