public class GetSpecifiedElementFromAList {
public static void main(String[] args) {
List<POJO> list = new ArrayList<POJO>();
POJO a = new POJO();
a.setKey("aaa");
a.setContent("aaa111111");
POJO b = new POJO();
b.setKey("bbb");
b.setContent("bbb222222");
list.add(a);
list.add(b);
// So, we're going to find out where it is. I mean the element which key is 'bbb'.
// If you do it with the original object, everything seems OK.
int idx = list.indexOf(b);
System.out.println(idx); // You can get a '1' here.
// But if you do it with a brand new object
// containing the same value with the original one...
POJO c = new POJO();
// like this...
c.setKey("bbb");
c.setContent("bbb222222");
idx = list.indexOf(c);
System.out.println(idx); // you'll get nothing but '-1'.
// which means it is not supposed to be used like this at all.
}
}
转载于:https://www.cnblogs.com/oasyth/archive/2009/08/18/1549112.html
本文通过一个具体的Java代码示例,展示了使用List的indexOf方法查找元素位置时可能遇到的问题,特别是当比较对象的实例而非其引用时。文章揭示了即使两个对象具有相同属性值,如果它们不是同一个实例,indexOf方法也可能返回-1,表明元素不存在于列表中。
799

被折叠的 条评论
为什么被折叠?



