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

在一条语句中一次将多个条目添加到HashMap

唐弘厚
2023-03-14
问题内容

我需要初始化一个常量HashMap,并希望在一行语句中完成它。避免这样的事情:

  hashMap.put("One", new Integer(1)); // adding value into HashMap
  hashMap.put("Two", new Integer(2));      
  hashMap.put("Three", new Integer(3));

类似于目标C:

[NSDictionary dictionaryWithObjectsAndKeys:
@"w",[NSNumber numberWithInt:1],
@"K",[NSNumber numberWithInt:2],
@"e",[NSNumber numberWithInt:4],
@"z",[NSNumber numberWithInt:5],
@"l",[NSNumber numberWithInt:6],
nil]

看了这么多,我还没有找到任何显示如何做到这一点的例子。


问题答案:

您可以使用 Double Brace初始化 ,如下所示:

Map<String, Integer> hashMap = new HashMap<String, Integer>()
{{
     put("One", 1);
     put("Two", 2);
     put("Three", 3);
}};

作为警告,请参阅Java的效率效率“ Double BraceInitialization”,了解它可能带来的性能影响。



 类似资料:
  • 我正在尝试将多列添加到phpMyAdmin中的现有表中,但我一直收到相同的错误: #1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册以获取正确的语法... 我在写: 我已经参考了过去在StackOverflow上的帖子,我正在遵循专家的建议,那么为什么我会出错呢?

  • 我使用的是+++。 我得到了4个DELETE,只想要一个数据库请求,所以我用一个“;”连接了DELETE命令...但总是失败。 它会抛出以下错误: 但如果我将此SQL粘贴到PhpMyAdmin中,它总是成功的... 如果我在单个查询中编写它,它也会成功。 多谢帮忙!

  • 问题内容: 假设我有一个看起来像这样的sql脚本: 基本上,脚本可以具有DML,DCL,DDL和匿名块。我希望能够拆分每个语句并分别执行它们,但是当然是为了使它们出现。 我考虑使用正则表达式,并且我相信逻辑必须是这样的: 1)如果字符串以create | alter | drop | declare开头,请获取从该字符串的开头到分号的所有内容,再以换行符开头,然后再加一个反斜杠(此处的关键是如果发

  • 问题内容: 有可能用一个SQL语句,多个表截断吗? 像这样: 问候 问题答案: 不可以,您只能使用TRUNCATE命令截断单个表。要截断多个表,可以使用T-SQL并遍历表名以一次截断每个表名。 您可以在@tableList变量中用逗号分隔所有表名,是的,如果有前缀,则可以截断来自不同模式的多个表。

  • 我在同一个表上有两个唯一的约束,我想在那个表上做一个upsert语句。 是否可以指定这两个冲突中的上位插入?我看到了这个:如何在Postgres上的冲突上的2列之一上的上位插入? 但是我的问题涉及得更多一些,因为其中一个唯一约束是另一个唯一约束的子集。 unique_constraint_1=(col_1)unqiue_constraint_2=(col_1、col_2) 谢谢!

  • 问题内容: 我基本上有两个名为和的表。该表具有以下字段: 是表中字段的外键,其中包含以下字段: 我正在运行这样的查询: 除其他事项外,这将返回用户的。但是我想返回用户的用户名,而不是他们的u_id。因此,基本上,在该SELECT语句中,我还想运行: 我可以为此使用两个查询,但是我试图减少我的应用程序运行的查询,而且我知道有一种方法可以将其组合成一个查询,但是我只是不知道:< 有人知道答案吗?谢谢!