Ich möchte eine erstellen map
, die Einträge enthält, die aus bestehen(int, Point2D)
Wie kann ich das in Java machen?
Ich habe folgendes erfolglos versucht.
HashMap hm = new HashMap();
hm.put(1, new Point2D.Double(50, 50));
Ich möchte eine erstellen map
, die Einträge enthält, die aus bestehen(int, Point2D)
Wie kann ich das in Java machen?
Ich habe folgendes erfolglos versucht.
HashMap hm = new HashMap();
hm.put(1, new Point2D.Double(50, 50));
Antworten:
Es gibt noch eine bessere Möglichkeit, eine Karte zusammen mit der Initialisierung zu erstellen:
Map<String, String> rightHereMap = new HashMap<String, String>()
{
{
put("key1", "value1");
put("key2", "value2");
}
};
Weitere Optionen finden Sie hier. Wie kann ich eine statische Karte initialisieren?
Java 9
public static void main(String[] args) {
Map<Integer,String> map = Map.ofEntries(entry(1,"A"), entry(2,"B"), entry(3,"C"));
}
Map.of(1, "A", 2, "B", 3, "C")
ist besser
java: cannot find symbol symbol: method of(java.lang.String,double) location: interface java.util.Map
java -version
openjdk 11.0.8 2020-07-14 OpenJDK Runtime Environment (build 11.0.8+10-post-Ubuntu-0ubuntu120.04) OpenJDK 64-Bit Server VM (build 11.0.8+10-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)
Map<Integer, Point2D> hm = new HashMap<Integer, Point2D>();
Point2D.Double
sieht nicht aus wie ein Point2D
= \
Map<int, Point2D> hm = new HashMap<int, Point2D>()
, bekomme ich diesen Fehler: Syntaxfehler auf Token "int", Dimensionen nach diesem Token erwartet.
Ich verwende eine solche Kartenpopulation dank Java 9. Meiner ehrlichen Meinung nach bietet dieser Ansatz eine bessere Lesbarkeit des Codes.
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);
}
Map<Integer, Double>