Eu tenho um método a seguir ... que na verdade pega a lista de frases e divide cada frase em palavras. Aqui está:
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;
}
Eu tenho que passar esta lista em um hashmap no seguinte formato
HashMap<String, ArrayList<String>>
portanto, este método retorna List e eu preciso de um arrayList? Se eu tentar lançar não funciona ... alguma sugestão?
Além disso, se eu alterar ArrayList para List em um HashMap, recebo
java.lang.UnsupportedOperationException
por causa desta linha no meu código
sentenceList.add(((Element)sentenceNodeList.item(sentenceIndex)).getTextContent());
Alguma sugestão melhor?
UnsupportedOperationException
é causado porque oArrays.asList
método retorna uma lista de tamanho fixo apoiada por uma matriz - ela não pode ser modificada. A solução apresentada aqui por @Jesper evitará isso.Cast funciona onde a instância real da lista é um
ArrayList
. Se for, digamos, umVector
(que é outra extensão deList
), ele lançará uma ClassCastException.O erro ao alterar a definição de seu HashMap deve-se aos elementos que estão sendo processados posteriormente, e esse processo espera um método que é definido apenas em
ArrayList
. A exceção informa que ele não encontrou o método que procurava.Crie um novo
ArrayList
com o conteúdo do antigo.fonte
Dê uma olhada em ArrayList # addAll (Collection)
Basicamente, você pode usar
fonte
Em Kotlin, a lista pode ser convertida em ArrayList passando-a como um parâmetro do construtor.
fonte
Arrays.asList
não retorna instância de,java.util.ArrayList
mas retorna instância dejava.util.Arrays.ArrayList
.Você precisará converter para ArrayList se quiser acessar
ArrayList
informações específicasfonte
Abordagem experimentada e testada.
fonte