将ArrayList映射到HashMap

时间:2014-04-13 16:15:05

标签: java arraylist

让我们说我正在阅读像ArrayList这样的一串长字符串......

Green,Jim,Bob,Dan
Blue,Chris,Al,Jeff
Orange,Mark

我想将这些值映射到HashMap中,颜色为键,名称为映射值。

我想出了如何将颜色作为关键,但我不知道如何将映射值作为名称。

代码:

        for (int i = 0; i < namesAndColors.size(); i++) {
        String linetoSplit = namesAndColors.get(i);

        String colors= linetoSplit.split(",")[0];

        hm.put(colors, ***);
        }

    System.out.println(hm);
    }

现在输出类似于:

[Green = , Blue= , Orange= ]

期望的输出:

[Green = Jim Bob Dan, Blue = Chris Al Jeff, Orange = Mark]

2 个答案:

答案 0 :(得分:0)

添加以下内容

 String colors= linetoSplit.split(",")[0];
 List<String> temp = new ArrayList<String>();
 for(int j = 1; j < linetosplit.lenght; j++)
     temp.add(linetosplit[i]);

  hm.put(colors, temp);

我假设Hashmap为< String, List< String > >,并在我添加的部分合适之前假设您的其他操作。

答案 1 :(得分:0)

你可以让JDK为你做繁重的工作:

for (String str : namesAndColors)
    hm.put(str.replaceAll(",.*", ""), Arrays.asList(str.replaceAll("^.*?,", "").split(",")));

请注意使用更简单的foreach循环。