Mapをkey順(昇順)に並び変える方法です
HashMapは、代入された順番に出力してくれることは保証していません
例えば以下のコード
hash.java
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(100, "東京");
map.put(1, "大阪");
map.put(10, "千葉");
map.put(10000, "神奈川");
map.put(1000, "鳥取");
for (Integer key : map.keySet()) {
System.out.println(key + ": " + map.get(key));
}
}
}
出力結果はputした順番ではなくバラバラに出力されてしまいます
kekka.java
10000: 神奈川
1: 大阪
100: 東京
1000: 鳥取
10: 千葉
keyを基準に昇順に並び変えたい場合はTreeMapを使います
new HashMapをnew TreeMapに変更しました
tree.java
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
Map<Integer, String> map = new TreeMap<Integer, String>(); //ここを変更
map.put(100, "東京");
map.put(1, "大阪");
map.put(10, "千葉");
map.put(10000, "神奈川");
map.put(1000, "鳥取");
for (Integer key : map.keySet()) {
System.out.println(key + ": " + map.get(key));
}
}
}
これで昇順に出力されました
kekka.java
1: 大阪
10: 千葉
100: 東京
1000: 鳥取
10000: 神奈川