用Java创建地图

时间:2013-02-07 04:23:53

标签: java map

我想创建一个map,其中包含由(int, Point2D)

组成的条目

我怎样才能用Java做到这一点?

我尝试了以下尝试失败。

HashMap hm = new HashMap();

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

6 个答案:

答案 0 :(得分:86)

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

答案 1 :(得分:16)

甚至有更好的方法来创建Map以及初始化:

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

有关更多选项,请查看How can I initialise a static Map?

答案 2 :(得分:8)

Map<Integer, Point2D> hm = new HashMap<Integer, Point2D>();

答案 3 :(得分:7)

Java 9

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

答案 4 :(得分:6)

使用较新的 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)), ...);

答案 5 :(得分:1)

由于Java 9,我使用了这种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);
  }