两个list求交集 求不出来
我用list1取出一个文章对象的集合,用list2也取出一个文章对象的集合,但是当我用list1.retainAll(list2);
之后我再取出list1的时候,list居然没数据。后来我查看了list.size(),结果却是size为0,但是list1与list2确实是有交集啊,为什么取完交集后,交集为空啊?求各位大侠指教。。
[解决办法]
目测可能是list1,list2取的文章对象不是同一个对象,文章对象应该需要重写下equals和hashcode方法
[解决办法]
文章对象重写一下public boolean equals(Object obj);方法,根据自己的条件判断相等。
[解决办法]
public static void main( String[] args )
{
List<String> list1=new ArrayList<String>();
list1.add("1");
list1.add("2");
list1.add("3");
list1.add("4");
List<String> list2=new ArrayList<String>();
list2.add("2");
list2.add("4");
list2.add("6");
if(list1.retainAll(list2)){
//此处List1 只会存在存在2,4两个元素。
//retainAll (将会把list2中与list1匹配的数据存放到list1中去
System.out.println("writable"+list1.size());
}else{
System.out.println( "Hello World!" );
}
}