用java找出两个集合中相同的元素和不通的元素
用java找出两个集合中相同的元素和不通的元素
假设有两个集合A和B,可以通过以下代码找出它们中相同的元素和不同的元素:
import java.util.*; public class Main { public static void main(String[] args) { Set<Integer> A = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5)); Set<Integer> B = new HashSet<>(Arrays.asList(3, 4, 5, 6, 7)); // 找出相同的元素 Set<Integer> intersection = new HashSet<>(A); intersection.retainAll(B); System.out.println("相同的元素:" + intersection); // 找出不同的元素 Set<Integer> difference = new HashSet<>(A); difference.addAll(B); Set<Integer> tmp = new HashSet<>(A); tmp.retainAll(B); difference.removeAll(tmp); System.out.println("不同的元素:" + difference); } }
输出结果:
相同的元素:[3, 4, 5]
不同的元素:[1, 2, 6, 7]
用java找出两个list集合中相同的元素和不通的元素
import java.util.*; public class Main { public static void main(String[] args) { List<Integer> A = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5)); List<Integer> B = new ArrayList<>(Arrays.asList(3, 4, 5, 6, 7)); // 找出相同的元素 List<Integer> intersection = new ArrayList<>(A); intersection.retainAll(B); System.out.println("相同的元素:" + intersection); // 找出不同的元素 List<Integer> difference = new ArrayList<>(A); difference.addAll(B); List<Integer> tmp = new ArrayList<>(A); tmp.retainAll(B); difference.removeAll(tmp); System.out.println("不同的元素:" + difference); } }
假设有两个List集合A和B,可以通过以下代码找出它们中相同的元素和不同的元素:
输出结果:
相同的元素:[3, 4, 5]
不同的元素:[1, 2, 3, 4, 5, 6, 7]
需要注意的是,List集合中的元素可以重复,因此相同的元素可能会出现多次。
用java8 找出两个集合中A集合的元素在B集合不存在的元素
可以使用Java 8中的Stream API来实现在两个集合中找出A集合的元素在B集合不存在的元素。具体步骤如下:
- 将B集合转换为一个Set,方便后续使用contains方法来判断元素是否存在。
- 使用stream方法将A集合转换为一个流。
- 使用filter方法过滤出在B集合中不存在的元素。
- 使用collect方法将过滤后的元素收集到一个List中。
下面是具体的代码实现:
List<String> a = Arrays.asList("apple", "banana", "orange", "pear");
List<String> b = Arrays.asList("banana", "pear", "grape");
Set<String> bSet = new HashSet<>(b);
List<String> result = a.stream()
.filter(e -> !bSet.contains(e))
.collect(Collectors.toList());
System.out.println(result); // 输出 ["apple", "orange"]
在上面的代码中,我们首先定义了两个集合a和b,然后将b集合转换为一个Set。接着,我们使用stream方法将a集合转换为一个流,然后使用filter方法过滤出在b集合中不存在的元素。最后,使用collect方法将过滤后的元素收集到一个List中。最终,我们将结果打印到控制台上。
本文来自博客园,作者:黄橙,转载请注明原文链接:https://www.cnblogs.com/RedOrange/p/17273786.html

浙公网安备 33010602011771号