有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在列表中添加与java中映射键匹配的元素

我有一张这样的清单

[A-Apple.txt,B-Ball.txt,A-Axe.txt,B-Box.txt]

由此,我想创建一张如下所示的地图:

{A=[A-Apple.txt,A-Axe.txt], B= [B-Ball.txt, B-Box.txt]

我试过了

   Map<String,List<String>> inputMap = new HashMap<>();
    inputFCSequenceFileList.forEach(value ->{
        List newList = new ArrayList();
                newList.add(value);
                inputMap.put(value.split("-")[0], newList);
            }
            );

但是没有得到预期的价值。我只得到最后一个元素。如果我把列表创建移到foreach循环之外,那么我就得到了所有的值


共 (1) 个答案

  1. # 1 楼答案

    您需要检查地图中是否已经存在该列表。只有当条目丢失时才创建它

    inputList = inputMap.getOrDefault(key, new ArrayList<String>());
    inputList.add(value);
    inputMap.put(key, inputList);
    

    这应该作为循环体来完成。我没有测试过,但应该给你一个想法