最近的工作内容,总是比较来比较去的。写了两个比较用的工具,发现用的最多的尽然是这样一个结构。我这里把它单独抽了出来。做了一点点的抽象:
public void listContentCompare(List<Object> As,List<Object> Bs) { boolean isAOnly = true; for(Object A:As) { for(int i = 0;i<Bs.size();) { Object B = Bs.get(i); if(A.equals(B)) { isAOnly = false; //TODO:B内部的其他比较,还可以递归哦 Bs.remove(B); } else i++; } if(isAOnly) System.out.println("Bs中有但是As中没有的"+A.toString()); isAOnly = true; } for(Object B:Bs) System.out.println("As中有但是Bs中没有的"+B.toString()); }
看了我自己的代码,使用的场景应该是Class具体内容的比较。当Class中的属性关联到其他Class的时候,递归就会派上用场了