我想创建一个map
包含条目的条目(int, Point2D)
我怎么能用Java做到这一点?
我尝试了下面的失败.
HashMap hm = new HashMap();
hm.put(1, new Point2D.Double(50, 50));
Run Code Online (Sandbox Code Playgroud)
hd1*_*hd1 98
Map <Integer, Point2D.Double> hm = new HashMap<Integer, Point2D>();
hm.put(1, new Point2D.Double(50, 50));
Run Code Online (Sandbox Code Playgroud)
小智 17
甚至有更好的方法来创建Map以及初始化:
Map<String, String> rightHereMap = new HashMap<String, String>()
{
{
put("key1", "value1");
put("key2", "value2");
}
};
Run Code Online (Sandbox Code Playgroud)
有关更多选项,请查看此处如何初始化静态地图?
Java 9
public static void main(String[] args) {
Map<Integer,String> map = Map.ofEntries(entry(1,"A"), entry(2,"B"), entry(3,"C"));
}
Run Code Online (Sandbox Code Playgroud)
Map<Integer, Point2D> hm = new HashMap<Integer, Point2D>();
Run Code Online (Sandbox Code Playgroud)
小智 6
多亏了 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);
}
Run Code Online (Sandbox Code Playgroud)
使用较新的 Java 版本(即 Java 9 及更高版本),您可以使用:
Map.of(1, new Point2D.Double(50, 50), 2, new Point2D.Double(100, 50), ...)
Run Code Online (Sandbox Code Playgroud)
一般:
Map.of(Key1, Value1, Key2, Value2, KeyN, ValueN)
Run Code Online (Sandbox Code Playgroud)
但是请记住,如果您有多个可以使用的条目,则Map.of
仅适用于最多 10
条目10
:
Map.ofEntries(entry(1, new Point2D.Double(50, 50)), entry(2, new Point2D.Double(100, 50)), ...);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
239325 次 |
最近记录: |