我有一个以下方法......它实际上是获取句子列表并将每个句子分成单词。就是这样:
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 中
HashMap<String, ArrayList<String>>
所以这个方法返回 List 并且我需要一个 ArrayList?如果我尝试转换它不会成功...有什么建议吗?
另外,如果我将 ArrayList 更改为 HashMap 中的 List,我会得到
java.lang.UnsupportedOperationException
因为我的代码中有这一行
sentenceList.add(((Element)sentenceNodeList.item(sentenceIndex)).getTextContent());
有更好的建议吗?
最佳答案
Cast 在列表的实际实例是 ArrayList
的情况下工作。如果是,比如说,一个 Vector
(它是 List
的另一个扩展),它将抛出一个 ClassCastException。
更改 HashMap 定义时的错误是由于稍后处理的元素,并且该过程需要一个仅在 ArrayList
中定义的方法。异常告诉你它没有找到它正在寻找的方法。
用旧的内容创建一个新的ArrayList
。
new ArrayList<String>(myList);
关于java - List<String> 到 ArrayList<String> 的转换问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13134983/