map
次のエントリを含むを作成したい(int, Point2D)
Javaでこれを行うにはどうすればよいですか?
以下を試しましたが失敗しました。
HashMap hm = new HashMap();
hm.put(1, new Point2D.Double(50, 50));
Map <Integer, Point2D.Double> hm = new HashMap<Integer, Point2D>();
hm.put(1, new Point2D.Double(50, 50));
Java 9
public static void main(String[] args) {
Map<Integer,String> map = Map.ofEntries(entry(1,"A"), entry(2,"B"), entry(3,"C"));
}
初期化とともにマップを作成するさらに良い方法があります。
Map<String, String> rightHereMap = new HashMap<String, String>()
{
{
put("key1", "value1");
put("key2", "value2");
}
};
その他のオプションについては、こちらをご覧ください。静的マップを初期化するにはどうすればよいですか?
新しいJavaバージョン(つまり、 Java 9以降)では、次のものを使用できます。
Map.of(1, new Point2D.Double(50, 50), 2, new Point2D.Double(100, 50), ...)
一般的に:
Map.of(Key1, Value1, Key2, Value2, KeyN, ValueN)
ただし、使用できるエントリが複数ある場合は、ほとんどのエントリでMap.of
のみ機能することに注意してください。 10
10
Map.ofEntries(entry(1, new Point2D.Double(50, 50)), entry(2, new Point2D.Double(100, 50)), ...);
Map<Integer, Point2D> hm = new HashMap<Integer, Point2D>();
私はJava9のおかげで、このような種類のMapポピュレーションを使用しています。私の正直な意見では、このアプローチにより、コードが読みやすくなります。
public static void main(String[] args) {
Map<Integer, Point2D.Double> map = Map.of(
1, new Point2D.Double(1, 1),
2, new Point2D.Double(2, 2),
3, new Point2D.Double(3, 3),
4, new Point2D.Double(4, 4));
map.entrySet().forEach(System.out::println);
}