java 如何筛选一个列表中不含另一个列表元素的结果
时间: 2024-02-05 18:12:47 浏览: 20
可以使用 Java 8 中的 Stream API 来筛选一个列表中不含另一个列表元素的结果。假设有两个列表 list1 和 list2,可以使用以下代码来实现筛选:
```
List<String> list1 = Arrays.asList("a", "b", "c", "d");
List<String> list2 = Arrays.asList("b", "d");
List<String> result = list1.stream()
.filter(e -> !list2.contains(e))
.collect(Collectors.toList());
System.out.println(result);
```
上述代码中,首先使用 Stream API 将 list1 转换为一个流,然后使用 `filter()` 方法筛选出不包含在 list2 中的元素,最后使用 `collect()` 方法将结果转换为一个新的列表。输出结果为 `[a, c]`。
相关问题
JAVA中将列表所有元素加入另一个列表中
在Java中,可以使用 `addAll()` 方法将一个列表中的所有元素加入到另一个列表中。该方法是 `Collection` 接口的一个方法,可以接收另一个集合作为参数,并将该集合中的所有元素加入到当前集合中。
例如,下面的代码将一个列表中的所有元素加入到另一个列表中:
```java
List<Integer> list1 = new ArrayList<>();
list1.add(1);
list1.add(2);
list1.add(3);
List<Integer> list2 = new ArrayList<>();
list2.addAll(list1);
System.out.println(list2); // 输出 [1, 2, 3]
```
在这个例子中,首先创建了一个列表 `list1`,并向其中添加了三个元素。然后创建了一个空列表 `list2`,并调用它的 `addAll()` 方法将 `list1` 中的所有元素加入到其中。最后打印出 `list2`,可以看到其中包含了 `list1` 中的所有元素。
需要注意的是,`addAll()` 方法不会创建一个新的列表,而是将指定集合中的元素添加到当前列表中。如果需要创建一个新的列表,可以使用 `ArrayList` 的构造函数或 `Collections` 类的 `addAll()` 方法创建一个新的列表并将元素添加到其中。例如:
```java
List<Integer> list1 = new ArrayList<>();
list1.add(1);
list1.add(2);
list1.add(3);
List<Integer> list2 = new ArrayList<>(list1); // 使用构造函数创建新列表
List<Integer> list3 = new ArrayList<>();
Collections.addAll(list3, 4, 5, 6); // 使用 Collections.addAll() 方法创建新列表
System.out.println(list2); // 输出 [1, 2, 3]
System.out.println(list3); // 输出 [4, 5, 6]
```
java中列表如何循环赋值给另一个列表
可以使用for循环遍历原列表,依次将元素赋值给新列表。示例代码:
```java
List<Integer> list1 = new ArrayList<>();
List<Integer> list2 = new ArrayList<>();
// 假设list1已经有一些元素
for (Integer i : list1) { // 遍历list1的元素
list2.add(i); // 将遍历到的元素添加到list2中
}
```