Java ArrayList of Arrays,包含不起作用

时间:2013-10-01 18:46:26

标签: java arrays arraylist contains

我有一个数组列表:

List<MyObj[]> list = new ArrayList<MyObj[]>();

我把数组放进去了:

MyObj[] test = new MyObj[2];
test[0] = new MyObj();
test[1] = new MyObj();
list.add(test);

我检查列表中是否包含测试:

if(list.contains(test)){
    System.out.println("You are smart");
}else{
    System.out.println("I are not smart");
}

>I are not smart

我在这里做错了什么?

2 个答案:

答案 0 :(得分:1)

既然你隐瞒了什么,我无法给出明确答案,但你可以试试

public static boolean contains(ArrayList<MyObj[]> list, MyObj[] element) {
    for (MyObj[] e: list) {
        if (Arrays.equals(e, element)) return true;
    }
    return false;
}

答案 1 :(得分:0)

两件事之一,你需要更新你的jre,或者你正在改变阵列。

这很好用:

public class Main {
    public static void main(String[] args) {
        List<MyObj[]> list = new ArrayList<MyObj[]>();

        MyObj[] test = new MyObj[2];

        test[0] = new MyObj();
        test[1] = new MyObj();
        list.add(test);

        if(list.contains(test)){
            System.out.println("is true");
        }else{
            System.out.println("Is  not true");
        }

    }
}
class MyObj {
    public MyObj() {

    }
    public String x;

}

输出:

is true