java比较两个list集合的差异,如果list中包含list 则递归比较
时间: 2023-08-06 09:09:00 浏览: 79
可以使用递归的方式,先比较两个list集合中的元素,如果元素类型是List,则递归比较。具体实现可以参考下面的示例代码:
```java
public static void compareLists(List<Object> list1, List<Object> list2) {
for (Object o1 : list1) {
boolean found = false;
for (Object o2 : list2) {
if (o1.equals(o2)) {
found = true;
if (o1 instanceof List && o2 instanceof List) {
compareLists((List<Object>) o1, (List<Object>) o2); // 递归比较
}
break;
}
}
if (!found) {
System.out.println("List1 contains " + o1 + " but List2 does not.");
}
}
for (Object o2 : list2) {
boolean found = false;
for (Object o1 : list1) {
if (o2.equals(o1)) {
found = true;
break;
}
}
if (!found) {
System.out.println("List2 contains " + o2 + " but List1 does not.");
}
}
}
```
其中,List的元素类型是Object,因为可能包含其他数据类型。比较时,先遍历list1中的元素,逐个与list2中的元素比较,如果找到相等的元素,则递归比较。如果list1中的元素在list2中不存在,则输出提示信息。然后再遍历list2中的元素,逐个与list1中的元素比较,如果找到相等的元素,则跳过。如果list2中的元素在list1中不存在,则输出提示信息。
阅读全文