値による HashMap の並べ替え
Java では、HashMap データ構造はキーと値のペアを格納する便利な方法を提供します。ただし、キーに関連付けられた値に基づいてデータにアクセスする必要がある場合は、HashMap を値で並べ替える必要があります。
HashMap を昇順で並べ替える
HashMap を値でソートする 1 つの方法は、Java 8 ストリームを使用することです。次のコード スニペットは、これを昇順で行う方法を示しています。
import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; public class SortHashMapByValues { public static void main(String[] args) { // Create an unsorted HashMap HashMap<Integer, String> unsortedMap = new HashMap<>(); unsortedMap.put(1, "froyo"); unsortedMap.put(2, "abby"); unsortedMap.put(3, "denver"); unsortedMap.put(4, "frost"); unsortedMap.put(5, "daisy"); // Sort the HashMap by values in ascending order Map<Integer, String> sortedMapAsc = unsortedMap.entrySet() .stream() .sorted(Map.Entry.comparingByValue()) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, LinkedHashMap::new)); // Key, Value : 2, abby // Key, Value : 5, daisy // Key, Value : 3, denver // Key, Value : 4, frost // Key, Value : 1, froyo System.out.println(sortedMapAsc); } }
HashMap を降順で並べ替える
HashMap を値で降順に並べ替えるには、次のようにします。上記のコード スニペットを少し変更します。
import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; public class SortHashMapByValues { public static void main(String[] args) { // Create an unsorted HashMap HashMap<Integer, String> unsortedMap = new HashMap<>(); unsortedMap.put(1, "froyo"); unsortedMap.put(2, "abby"); unsortedMap.put(3, "denver"); unsortedMap.put(4, "frost"); unsortedMap.put(5, "daisy"); // Sort the HashMap by values in descending order Map<Integer, String> sortedMapDesc = unsortedMap.entrySet() .stream() .sorted(Map.Entry.<Integer, String>comparingByValue().reversed()) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, LinkedHashMap::new)); // Key, Value : 1, froyo // Key, Value : 4, frost // Key, Value : 3, denver // Key, Value : 5, daisy // Key, Value : 2, abby System.out.println(sortedMapDesc); } }
このコードは、並べ替えられた結果を出力します。元のキーを表すキーと降順にソートされた値を含む HashMap。昇順と降順の両方の例では、LinkedHashMap を使用して挿入順序を維持し、キーが並べ替えられた値に適切に関連付けられていることを確認します。
以上がJava HashMap を値によって昇順および降順に並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。