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

Java 8 toMap IllegalStateException复制密钥

艾焕
2023-03-14
问题内容

我有一个文件,其中包含以下格式的数据

1
2
3

我想将此加载为 {(1->1), (2->1), (3->1)}

这是Java 8代码,

Map<Integer, Integer> map1 = Files.lines(Paths.get(inputFile))
                .map(line -> line.trim())
                .map(Integer::valueOf)
                .collect(Collectors.toMap(x -> x, x -> 1));

我收到以下错误

Exception in thread "main" java.lang.IllegalStateException: Duplicate key 1

如何解决此错误?


问题答案:

如果文件中没有重复代码,则代码将运行。

Map<Integer, Integer> map1 = Files.lines(Paths.get(inputFile))
            .map(String::trim)
            .map(Integer::valueOf)
            .collect(Collectors.toMap(x -> x, x -> 1));

如果有重复项,请使用以下代码获取该键在文件中的出现总数。

Map<Integer, Long> map1 = Files.lines(Paths.get(inputFile))
            .map(String::trim)
            .map(Integer::valueOf)
            .collect(Collectors.groupingBy(x -> x, Collectors.counting());


 类似资料:
  • 问题内容: 我可以使用连接的redis-cli复制密钥吗,redis中是否预定义了任何命令? 将FSS_SYSAGENT复制到FSS_SYSAGENTDuplicate。 10.44.112.213:6403> hgetall FSS_SYSAGENT 1)“ SYSTEM_01” 2)“ {\” port \“:\” 4407 \“,\” ipAddress \“:\” 10.44.112.21

  • 如何在不使用 SSL 的情况下使用复制的 MYSQL/MariaDB 服务器之间配置加密? 我不想使用SSL,因为我必须为我所有的服务器购买证书,而且证书会过期.. 难道不能设置一个用于加密的密码吗?

  • 我有一张桌子 首先我跑 我跑完之后 我得到 错误:重复的键值违反唯一约束“users\u pkey”详细信息:键(id)=(1)已存在。 为什么我自己插入“id”时id序列不递增?

  • 我想自动部署可变数量的虚拟机(通过副本部署),通过取代密码的密钥保险库秘密。我想为不同的VM使用不同的秘密(例如secret1用于VM1,secret2用于VM2)。根据文档,我需要引用一个带有动态id的秘密https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-keyvault-paramete

  • 我需要在源代码中隐藏密码,有什么可能的方法来混淆密码,以降低反编译的风险? 例如

  • 我计划在key vault上保留密钥,但我不清楚密钥和秘密的版本控制,我有一些关于Azure key vault上的key/Secret的版本控制的问题。 如何创建现有密钥的新版本? 是否可以解密用不同版本的相同密钥加密的数据? 是否可以为某个版本的密钥设置过期日期?