Java语言怎么用两个列表实现对3个列表的分类求差并补,差并补三者的数组的共享怎么用列表去实现的呢
3个列表的分类求差并补这很容易得到,但是我不太理解你这里的差并补三者的数组的共享是什么意思?打算用一个列表存放求差并补后的分类结果还是需要跟之前提问一下的,对列表进行某些操作?
效果如图 :
思路分析 我放在注释里了, 可以看下, 如果又不理解的地方, 随时叫我
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> listA = new ArrayList<>();
List<Integer> listB = new ArrayList<>();
List<Integer> listC = new ArrayList<>();
// 假设列表A、B、C已经初始化并添加了元素
listA.add(1);
listA.add(2);
listA.add(3);
listB.add(2);
listB.add(3);
listB.add(4);
listC.add(3);
listC.add(4);
listC.add(5);
List<Integer> listX = new ArrayList<>(); // 分类差集的结果
List<Integer> listY = new ArrayList<>(); // 分类补集的结果
// 将列表A中的元素分类
for (Integer num : listA) {
if (listB.contains(num) && listC.contains(num)) {
listX.add(num); // 同时存在于列表B和列表C,添加到列表X
} else {
listY.add(num); // 不同时存在于列表B和列表C,添加到列表Y
}
}
// 将列表B中独有的元素添加到列表X
for (Integer num : listB) {
if (!listA.contains(num) && !listC.contains(num)) {
listX.add(num);
}
}
// 将列表C中独有的元素添加到列表X
for (Integer num : listC) {
if (!listA.contains(num) && !listB.contains(num)) {
listX.add(num);
}
}
// 将列表A中独有的元素添加到列表Y
for (Integer num : listA) {
if (!listB.contains(num) && !listC.contains(num)) {
listY.add(num);
}
}
// 将列表B中独有的元素添加到列表Y
for (Integer num : listB) {
if (!listA.contains(num) && !listC.contains(num)) {
listY.add(num);
}
}
// 将列表C中独有的元素添加到列表Y
for (Integer num : listC) {
if (!listA.contains(num) && !listB.contains(num)) {
listY.add(num);
}
}
// 将列表X和列表Y转换为数组
Integer[] arrayX = listX.toArray(new Integer[0]);
Integer[] arrayY = listY.toArray(new Integer[0]);
// 输出数组arrayX和arrayY,验证结果
System.out.println("分类求差的结果:");
for (Integer num : arrayX) {
System.out.print(num + " ");
}
System.out.println();
System.out.println("分类补集的结果:");
for (Integer num : arrayY) {
System.out.print(num + " ");
}
}
}
不知道你这个问题是否已经解决, 如果还没有解决的话: