我有一个以下方法……它实际上采用句子列表并将每个句子分成单词。就这个:
public List<String> getWords(List<String> strSentences){
allWords = new ArrayList<String>();
Iterator<String> itrTemp = strSentences.iterator();
while(itrTemp.hasNext()){
String strTemp = itrTemp.next();
allWords = Arrays.asList(strTemp.toLowerCase().split("\\s+"));
}
return allWords;
}
我必须将此列表传递到以下格式的哈希图中
HashMap<String, ArrayList<String>>
所以这个方法返回 List 而我需要一个 ArrayList?如果我尝试投射它不成功……有什么建议吗?
此外,如果我将 ArrayList 更改为 HashMap 中的 List,我会得到
java.lang.UnsupportedOperationException
因为我的代码中有这一行
sentenceList.add(((Element)sentenceNodeList.item(sentenceIndex)).getTextContent());
有更好的建议吗?
原文由 Skipper07 发布,翻译遵循 CC BY-SA 4.0 许可协议
首先,为什么地图是
HashMap<String, ArrayList<String>>
而不是HashMap<String, List<String>>
?为什么值必须是接口的特定实现List
(在这种情况下为ArrayList
)是否有某种原因?Arrays.asList
does not return ajava.util.ArrayList
, so you can’t assign the return value ofArrays.asList
to a variable of typeArrayList
.代替:
尝试这个: