当前位置: 首页 > 面试题库 >

C#到Java-词典?

郭浩穰
2023-03-14
问题内容

用Java在字典中可以声明已经声明的项目吗?就像下面的C#代码一样:

   Dictionary<string, int> d = new Dictionary<string, int>()
    {
        {"cat", 2},
        {"dog", 1},
        {"llama", 0},
        {"iguana", -1}
    };

我该怎么办?我要使用哪种类型?我读过字典已过时。


问题答案:

这将做您想要的:

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较新版本的良好默认方法。



 类似资料:
  • 问题内容: 我已经使用C#,更广泛地使用.Net框架已有两年了。我经常听说C#和Java语言之间的相似之处,并且想了解有关第二种语言的更多信息。 来自C#时,您对学习Java有任何具体建议吗? C#程序员在启动Java时会发生任何常见错误吗? 是否有任何文档显示了您可以保留的习惯和必须改变的习惯(仍然在C#到Java的可视性中,所以比C#与Java的比较要具体一些) 问题答案: 好吧,尽管C#和J

  • 我必须将java“转换”为c。我做得对吗?你能纠正吗 爪哇-

  • 问题内容: 我正在尝试实现一个程序,该程序将接受用户输入,将该字符串拆分为标记,然后在字典中搜索该字符串中的单词。我解析的字符串的目标是使每个标记都成为英语单词。 例如: 我目前有这段代码,可以完成所有工作,直到所需的输出部分为止: 我知道有更好的方法来存储字典(例如,二进制搜索树或哈希表),但无论如何我都不知道如何实现。 我坚持如何实现一种方法,该方法将检查拆分字符串以查看每个段是否都是词典中的

  • 我是新的C#,需要帮助格式化这段代码,我试图从剪贴板上读取特定的单词,然后将其输出回剪贴板。我需要在字符串列表搜索中添加一个无穷无尽的数字或单词。

  • 本文向大家介绍C++多线程实现电子词典,包括了C++多线程实现电子词典的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C++多线程实现电子词典的具体代码,供大家参考,具体内容如下 效果图: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍C++变位词问题分析,包括了C++变位词问题分析的使用技巧和注意事项,需要的朋友参考一下 在《编程珠玑》一书的第二章提到了一个变位词问题,变位词指的是一个单词可以通过改变其他单词中字母的顺序来得到,也叫做兄弟单词,如army->mary。由变位词可以引申出几个算法问题,包括字符串包含问题,比较两个字符串是否是变位词,以及找出字典中变位词集合的问题。 一、字符串包含问题 (1) 问题描