我有两个列表word
包含单词(单词是列表单词的副本)和existingGuesses
包含字符,我想比较它们(意味着比较列表中是否存在每个字符{ {1}}或不通过迭代for循环。任何人都可以建议我如何进行比较吗?
word
答案 0 :(得分:1)
您可以使用List#contains(Object)来检查此类字词的猜测。
for(String myGuess: existingGuesses){
if(word.contains(myGuess)) {
// Do what you want
}
}
答案 1 :(得分:1)
以下O(N)复杂性代码
如何?public List<String> getWordOptions(List<String> existingGuesses, String newGuess) {
List<String> word = new ArrayList<String>(words);
for (String cha : existingGuesses) {
if (word.contains(cha)) {
word.remove(cha);
}
}
return null;
}
答案 2 :(得分:0)
如果你想比较它们并删除它们,那么
然后您可以使用List#removeAll(anotherlist)
从此列表中删除指定集合中包含的所有元素(可选操作)。
(来自word.remove(c);
的线索)来自您的评论代码。
答案 3 :(得分:0)
您可以使用Collection.retainAll:
List<String> word=new ArrayList<String>();//fill list
List<String> existingGuesses=new ArrayList<String>();//fill list
List<String> existingWords=new ArrayList<String>(word);
existingWords.retainAll(existingGuesses);
//existingWords will only contain the words present in both the lists
System.out.println(existingWords);