이것이 중복 된 경우 사과 드리지만이 특정 문제에 특별히 답변 한 답변을 찾을 수 없습니다.HashSets 컬렉션 정렬
나는 Set 값과 쌍을 이루는 문자열 키를 포함하는 HashMap을 가지고있다. 세트의 길이에 따라지도에서 값을 정렬하고 싶습니다. 고려 :
HashMap<String, Set<String>> myMap;
은 포함 :
{"A", {"Dukmerriot", "King", "Pumpkin"}}
{"B", {"Steve"}}
{"C", {"Jib", "Jab", "John", "Julie"}}
{"D", {"Apple", "Amy", "Unicorn", "Charlie", "Raptor"}}
{"E", {}}
내가 효율적으로 myMap
에서 (큰 수에서 작은 세트의 순서를 지정) 목록 {"D", "C", "A", "B", E"}
을 얻을 수 있어야합니다.
집합을 구현하고 compareTo
메서드를 재정의하는 래퍼 클래스를 만드는 것 외에 길이에 따라 집합 컬렉션을 정렬하는 방법이 있습니까?
편집 :이 컬렉션을 유지 관리하기 위해 HashMap을 사용할 필요가 없음을 지정해야합니다. TreeMap이나 뭔가를 사용할 수는 있지만 Set이 Comparable을 구현하지 않기 때문에 가능한지 확실하지 않습니다.
_ "효율적으로 myMap에서'{"D ","C ","A ","B ", E"}'를 얻을 수 있기를 원합니다. 집합은 순서가 없으므로 거기에'myMap.keySet()'을 사용하면됩니다. –
기본적으로 그 순서대로 목록을 원합니다. – Devin
집합을 정렬 할 수 있습니다. 예를 들어 TreeSet은 SortedSet입니다. –