LoginSignup
0
0

More than 1 year has passed since last update.

Java Mapをkey順に並び替える

Posted at

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: 神奈川
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0