キーと値のペアの形式のコレクションがあり、キー自体に基づいて並べ替えようとしましたが、コレクションの値は次のとおりです
cd,20
ef,65
ab,28
gh,76
最初に示したように key です。キー自体に基づいて並べ替える方法を教えてください。それが私が探していた出力です。
ab,28
cd,20
ef,65
gh,76
キーと値のペアの形式のコレクションがあり、キー自体に基づいて並べ替えようとしましたが、コレクションの値は次のとおりです
cd,20
ef,65
ab,28
gh,76
最初に示したように key です。キー自体に基づいて並べ替える方法を教えてください。それが私が探していた出力です。
ab,28
cd,20
ef,65
gh,76
元の Map からTreeMapを作成するだけです。TreeMap は、キーの自然順序付けに従ってソートされます。
for (Map.Entry e : treeMap.entrySet()) {
// generics elided for clarity
ソートされます。のドキュメントからentrySet()
:
このマップに含まれるマッピングの Set ビューを返します。セットの反復子は、キーの昇順でエントリを返します。
を使用entrySet()
すると、キーを取得して値のマップに戻るのではなく、1 回の操作でキーと対応する値を取得できます。これは小さな最適化ですが、知っておく価値があります。
TreeMap<String, Integer> map = new TreeMap<>();
// insert entries:
map.put("ab", 12);
// ...
// insertion order does not matter
for (String key : map.keySet()) {
System.out.println(key + ", " + map.get(key));
}
// will always print in sorted order