그래서 Java에 매우 익숙하며 연습을 통해 자신의 파이썬 프로그램 중 하나를 Java로 변환하고 있습니다.Java HashMap에서 값을 기준으로 상위 10 개 항목을 반환하는 방법
나는 다음은 (값으로) 분류 만이 키를 반환합니다 파이썬에서 나는 동작을 복제하려고 문제로되지 값을 실행 한 : 자바에서
popular_numbers = sorted(number_dict, key = number_dict.get, reverse = True)
, 내가 가진를 약간의 연구를 수행하고 자신이나 비슷한 방법과 같은 n00b에 대한 쉬운 샘플을 아직 찾지 못했습니다. 정렬을 위해 Guava를 사용하는 예제를 찾았지만 정렬은 키별로 정렬 된 HashMap을 반환합니다.
위와 이외에도 Java에서 발견되지 않은 파이썬에 관한 다른 좋은 점 중 하나는 정렬 된 값의 하위 집합을 쉽게 반환 할 수 있다는 것입니다. 파이썬에서 단순히 다음을 수행 할 수 있습니다 :이 예에서
print "Top 10 Numbers: %s" % popular_numbers[:10]
, number_dict 키의 사전이며, 값 쌍은 키 번호 1..100를 나타냅니다 및 값 횟수입니다 수 (키) 발생
10 번호 :
for n in numbers: if not n == '': number_dict[n] += 1
최종 결과는 같은 것, [ '27', '11', '5', '8', '16', '25 ','1 ','24 ','32 ', '20 ']
Java에서 명확하게 HashMap을 만들었으므로 성공적으로 숫자를 검사하고 키, 값 쌍의 값을 증가 시켰습니다. 나는 이제 정렬에 집착하고 값에 따라 상위 10 개의 숫자 (키)를 반환합니다. 지도를 가정
특히 HashMap을 사용해야하는 이유가 있나요? 특히 정렬이 필요하기 때문에 그렇습니까? – Zong
해시 맵이 아닌 트리 맵 사용에 대해 생각해 보셨습니까? – BlackHatSamurai
가능한 중복 : http://stackoverflow.com/questions/780541/how-to-sort-hash-map, http://stackoverflow.com/questions/8119366/sorting-hashmap-by-values – BlackHatSamurai