Tôi muốn tạo một map
chứa các mục nhập bao gồm(int, Point2D)
Làm thế nào tôi có thể làm điều này trong Java?
Tôi đã thử cách sau không thành công.
HashMap hm = new HashMap();
hm.put(1, new Point2D.Double(50, 50));
Tôi muốn tạo một map
chứa các mục nhập bao gồm(int, Point2D)
Làm thế nào tôi có thể làm điều này trong Java?
Tôi đã thử cách sau không thành công.
HashMap hm = new HashMap();
hm.put(1, new Point2D.Double(50, 50));
Câu trả lời:
Thậm chí còn có một cách tốt hơn để tạo Bản đồ cùng với khởi tạo:
Map<String, String> rightHereMap = new HashMap<String, String>()
{
{
put("key1", "value1");
put("key2", "value2");
}
};
Để biết thêm các tùy chọn, hãy xem tại đây Làm cách nào để khởi tạo Bản đồ tĩnh?
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")
tốt hơn
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
không giống như một Point2D
= \
Map<int, Point2D> hm = new HashMap<int, Point2D>()
, tôi gặp lỗi này: Lỗi cú pháp trên mã thông báo "int", Thứ nguyên được mong đợi sau mã thông báo này.
Tôi sử dụng loại dân số Bản đồ như vậy nhờ Java 9. Theo ý kiến trung thực của tôi, cách tiếp cận này cung cấp mã dễ đọc hơn.
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>