我觉得,你在al1.add里new的person是一个对象,对应一个哈希值
al2.add中new的person是另一个对象,哈希值与al1中不一致,如果在al1.retainAll(al2);之前加一个sop打印出al1的元素的话
我试了一下应该是这样
al1=[java01, java02, Person@190d0630, java04]
al1=[]
al2=[java03, java08, Person@26114629, java06]
两个person明显不是一个
如果想要取交集只要先new一个person就没问题了吧
Person p = new Person();
ArrayList al1 = new ArrayList();
al1.add("java01");
al1.add("java02");
al1.add(p);
al1.add("java04");
ArrayList al2 = new ArrayList();
al2.add("java03");
al2.add("java08");
al2.add(p);
al2.add("java06");
这样,再取交集就有了
al1=[java01, java02, Person@26114629, java04]
al1=[Person@26114629]
al2=[java03, java08, Person@26114629, java06]
|