学习过程中遇到的小问题,collecion集合的方法,自定义了一个person类,再代码中进行了实例化,再添加到集合中,结果就是我想要的,如下:
代码:
Person zs = new Person("zhangsan",18);
Collection collection = new ArrayList();
collection.add("ABC");
collection.add(zs);
collection.add(new Person("Laoli",16));
Collection c2 = new ArrayList();
c2.add(zs);
collection.retainAll(c2);
Iterator t1 = collection.iterator();
System.out.println(collection);
while(t1.hasNext()) {
System.err.println(t1.next());
}
结果:
Person [name=zhangsan, age=18]
[Person [name=zhangsan, age=18]]
但是,如果直接进行add就不可以,代码如下:
Collection collection = new ArrayList();
collection.add("ABC");
collection.add(new Person("zhangsan",18));
collection.add(new Person("Laoli",16));
Collection c2 = new ArrayList();
c2.add(new Person("zhangsan",18));
collection.retainAll(c2);
Iterator t1 = collection.iterator();
System.out.println(collection);
while(t1.hasNext()) {
System.err.println(t1.next());
}
结果:
[]
我能想到的是可能是因为new的缘故,两个不同对象的问题,但是我的疑问点就出现了
疑问点:jdk1.6就没问题,我用的1.8就这样,难道是1.8改了?
求那位大神详细解答一下,多谢!!