如何使用HashMap实现Javas Collections.addAll()<string,hashset <integer =“”>&gt;?

时间:2015-09-08 22:13:57

标签: java collections nested

我试图在Collections.addAll()方法中使用构建,但无法通过嵌套数据结构找出正确的方法。任何有关该领域的方向或文件都将不胜感激。

private Map<String, Set<Integer>> index;
index = new HashMap<String, Set<Integer>>();

if (index.containsKey(word) == false)
{
    index.put(word, new HashSet<>());
}

public void addAll(String[] words)
{
    // TODO Fill this in.
    for (String wordIndex : words)
    {
        wordIndex = clean(wordIndex);
        if (!index.containsKey(wordIndex))
        {

        }
    }
    // Collections.addAll(words, index);
    // for (String word : index.keySet())
    // {
    // System.out.printf("%d", word);
    //
    // for (Integer position : index.get(word))
    // {
    // System.out.printf(", %s", position);
    //
    // // add each word/position pair.
    // index.get(word).add(position);
    //
    // }
    // System.out.printf("%n");
    //
    // }
}

1 个答案:

答案 0 :(得分:0)

您要做的是什么

根据您的代码片段,我模糊地确定您正在尝试使用addAll将字符串数组(String [])添加到字符串列表中 集合类中的方法

问题

在您的代码中,您使用了//Collections.addAll(words,index)。 查明这是否有效的最佳方法是参考JAVA SDK API。

我已从文档中复制了以下代码段;

public static boolean addAll(Collection c,                              T ...元素)

如果你看一下上面的内容;​​

a)addAll的第一个参数采用扩展Collection Interface的任何数据结构。(LIST,SET,..等)    在您的示例中,这可以是LIST l = new ArrayList()

b)addALL的第二个参数采用您在a)中使用的Collection类型的值数组    在你的例子中,这可以是新的String a = new String [] {&#34; a&#34; ,&#34; b&#34; &#34; C&#34;}

<强>解决方案

在你的addAll方法中,执行以下操作;

列表s =新的ArrayList()   Collections.addAll(s,words)