在Java编程中,List是一种常用的数据结构,它可以存储一组有序的元素。有时候我们需要对两个List进行操作,比如求它们的差集。
差集即两个集合A和B中不同的元素构成的集合。在List中,可以通过遍历来实现差集的操作。下面我们就来介绍如何在Java中对两个List求差集。
首先,我们需要准备两个List,然后通过两次循环遍历的方式来求差集。
import java.util.ArrayList;
import java.util.List;
public class ListDifference {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<>();
List<Integer> list2 = new ArrayList<>();
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(4);
list2.add(3);
list2.add(4);
list2.add(5);
list2.add(6);
List<Integer> diffList = new ArrayList<>();
for (Integer element : list1) {
if (!list2.contains(element)) {
diffList.add(element);
}
}
for (Integer element : list2) {
if (!list1.contains(element)) {
diffList.add(element);
}
}
System.out.println("List1: " + list1);
System.out.println("List2: " + list2);
System.out.println("Difference List: " + diffList);
}
}
在上面的示例代码中,我们定义了两个List list1和list2,然后使用双重循环遍历的方式,分别将不在另一个List中的元素添加到差集List diffList中。最后输出差集结果。
除了循环遍历的方式,我们还可以使用Java 8中的Stream来实现List的差集操作。
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class ListDifference {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<>();
List<Integer> list2 = new ArrayList<>();
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(4);
list2.add(3);
list2.add(4);
list2.add(5);
list2.add(6);
List<Integer> diffList = list1.stream()
.filter(element -> !list2.contains(element))
.collect(Collectors.toList());
diffList.addAll(list2.stream()
.filter(element -> !list1.contains(element))
.collect(Collectors.toList()));
System.out.println("List1: " + list1);
System.out.println("List2: " + list2);
System.out.println("Difference List: " + diffList);
}
}
在上面的示例代码中,我们使用了Java 8的Stream,通过filter和collect方法来实现List的差集操作。最后输出与方法一相同。
以上就是在Java中对两个List求差集的方法,通过循环遍历或者使用Java 8的Stream,都可以轻松实现List的差集操作。
本文链接:http://so.lmcjl.com/news/22351/