使用for循环比较java中的两个列表

时间:2013-09-24 10:37:35

标签: java list

我有两个列表word包含单词(单词是列表单词的副本)和existingGuesses包含字符,我想比较它们(意味着比较列表中是否存在每个字符{ {1}}或不通过迭代for循环。任何人都可以建议我如何进行比较吗?

word

4 个答案:

答案 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);