Create Map in Java

I'd like to create a map that contains entries consisting of (int, Point2D)

How can I do this in Java?

I tried the following unsuccessfully.

HashMap hm = new HashMap(); hm.put(1, new Point2D.Double(50, 50)); 
0

6 Answers

Map <Integer, Point2D.Double> hm = new HashMap<Integer, Point2D>(); hm.put(1, new Point2D.Double(50, 50)); 
1

There is even a better way to create a Map along with initialization:

Map<String, String> rightHereMap = new HashMap<String, String>() { { put("key1", "value1"); put("key2", "value2"); } }; 

For more options take a look here How can I initialise a static Map?

4

Java 9

public static void main(String[] args) { Map<Integer,String> map = Map.ofEntries(entry(1,"A"), entry(2,"B"), entry(3,"C")); } 
0

With the newer Java versions (i.e., Java 9 and forwards) you can use :

Map.of(1, new Point2D.Double(50, 50), 2, new Point2D.Double(100, 50), ...) 

generically:

Map.of(Key1, Value1, Key2, Value2, KeyN, ValueN) 

Bear in mind however that Map.of only works for at most 10 entries, if you have more than 10 entries that you can use :

Map.ofEntries(entry(1, new Point2D.Double(50, 50)), entry(2, new Point2D.Double(100, 50)), ...); 
Map<Integer, Point2D> hm = new HashMap<Integer, Point2D>(); 
5

I use such kind of a Map population thanks to Java 9. In my honest opinion, this approach provides more readability to the code.

 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); } 

You Might Also Like