C#到Java-词典?

C#到Java-词典?,第1张

C#到Java-词典?

这将做您想要的:

Map<String,Integer> map = new HashMap<String, Integer>(){{    put("cat", 2);    put("dog", 1);    put("llama", 0);    put("iguana", -1);}};

该语句创建HashMap的匿名子类,与父类的唯一区别是在实例创建过程中添加了4个条目。在Java世界中,这是一个相当普遍的习惯用法(尽管有些人有争议,因为它创建了一个新的类定义)。

由于这一争议,从Java
9开始,有一个新的惯用法来方便地构建地图:静态Map.of方法家族。

使用Java 9或更高版本,您可以按以下方式创建所需的地图

Map<String, Integer> map = Map.of(    "cat", 2,    "dog", 1,    "llama", 0,    "iguana", -1);

对于较大的地图,此替代语法可能不太容易出错:

Map<String, Integer> map = Map.ofEntries(    Map.entry("cat", 2),    Map.entry("dog", 1),    Map.entry("llama", 0),    Map.entry("iguana", -1));

(如果Map.entry是静态导入而不是显式引用的,则特别好)。

除了仅适用于Java 9+,这些新方法与以前的方法也不完全相同:

  • 它们不允许您指定使用哪种Map实现
  • 他们只创建不可变的地图
  • 他们不会创建Map的匿名子类

但是,对于许多用例而言,这些差异无关紧要,这使得它成为Java较新版本的良好默认方法。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5500806.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-12
下一篇2022-12-13

发表评论

登录后才能评论

评论列表(0条)

    保存