在ArrayList,Java中的contains()方法

时间:2014-06-30 12:54:54

标签: java arraylist contains

我正在使用ArrayList来保存问题及其答案。 ArrayList由Answer Class和Answer_marked组成,其答案类如下:

private class Answer {
    private long question_no;
    private ArrayList<long> answer;

    public boolean equals(Object o) {
        if (o instanceof Answer) 
            if (((Answer)o).question_no == this.question_no)
                 return true;
        return false;
    }
}

public ArrayList<Answer> answers = new ArrayList<Answer>();

现在,当用户更改答案时,我想查看答案arraylist并检查答案中是否已存在question_no。如果是,则更新答案的答案值。我试图使用contains方法来检查question_no是否已经存在,但它总是返回false。我在这做错了什么? 哪种其他数据结构最适合这样做?

我正在使用answers.contains(新答案(10,20))来查看问题10是否已经回答。

1 个答案:

答案 0 :(得分:0)

如果您有一个ArrayList,则不应该answers.contains(10) - 这不起作用.10是一个int,在equals()中,如果o不是{ {1}}然后您将返回Answer

相反,请尝试:

false