Ik wil graag een map
maken die items bevat die bestaan uit (int, Point2D)
Hoe kan ik dit in Java doen?
Ik heb het volgende zonder succes geprobeerd.
HashMap hm = new HashMap();
hm.put(1, new Point2D.Double(50, 50));
Antwoord 1, autoriteit 100%
Map <Integer, Point2D.Double> hm = new HashMap<Integer, Point2D>();
hm.put(1, new Point2D.Double(50, 50));
Antwoord 2, autoriteit 19%
Java 9
public static void main(String[] args) {
Map<Integer,String> map = Map.ofEntries(entry(1,"A"), entry(2,"B"), entry(3,"C"));
}
Antwoord 3, autoriteit 17%
Er is zelfs een betere manier om samen met initialisatie een kaart te maken:
Map<String, String> rightHereMap = new HashMap<String, String>()
{
{
put("key1", "value1");
put("key2", "value2");
}
};
Kijk hier voor meer opties Hoe kan ik een statische kaart initialiseren?
Antwoord 4, autoriteit 7%
Map<Integer, Point2D> hm = new HashMap<Integer, Point2D>();
Antwoord 5, autoriteit 5%
Met de nieuwere Java-versies (d.w.z.Java 9 en hoger) kunt u het volgende gebruiken:
Map.of(1, new Point2D.Double(50, 50), 2, new Point2D.Double(100, 50), ...)
algemeen:
Map.of(Key1, Value1, Key2, Value2, KeyN, ValueN)
Houd er echter rekening mee dat Map.of
alleen werkt voor maximaal10
inzendingen, als je meer dan 10
items die u kunt gebruiken :
Map.ofEntries(entry(1, new Point2D.Double(50, 50)), entry(2, new Point2D.Double(100, 50)), ...);
Antwoord 6, autoriteit 2%
Ik gebruik zo’n soort kaartpopulatie dankzij Java 9. Naar mijn eerlijke mening zorgt deze aanpak voor meer leesbaarheid van de 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);
}