List.contains(Object o) 问题

  前几天遇到一个问题,先记一下

想实现的功能是点击列表项,判断是否包含在datalist中,如果不包含则添加入datalist,列表可以重新生成

直接使用   datalist.contains(temp) ,发现在列表未重新生成的情况下工作正常,如果重新生成了列表,即使是列表项的值完全相同,datalist.contains(temp)的值也为false。

查看api 发现 Object.contains() 函数调用 object.equals(),而equals函数为

public boolean equals(Object o) {
        return this == o;
    }

比较的是地址,所以为false。

 

参考 http://xiashengchao.iteye.com/blog/753409

你可能感兴趣的:(List.contains(Object o) 问题)