java实现集合1 {1111,2222,33333},集合2 {11,22}过滤出来集合1里不包含集合1和2的数据
时间: 2024-10-24 12:12:05 浏览: 25
在Java中,可以使用`Stream API`结合`filter()`方法来实现这个需求。首先,假设我们有两个集合`List<Integer>`,例如`list1`和`list2`:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
List<Integer> list1 = new ArrayList<>();
list1.add(1111);
list1.add(2222);
list1.add(33333);
List<Integer> list2 = new ArrayList<>();
list2.add(11);
list2.add(22);
```
然后我们可以创建一个新的`stream`来过滤出`list1`中不在`list2`中存在的元素:
```java
List<Integer> filteredList = list1.stream()
.filter(element -> !list2.contains(element))
.collect(Collectors.toList());
```
现在`filteredList`就是只包含`list1`中不包含`list2`中的数字的集合。
相关问题
java实现集合1 {1111,2222,33333},集合2 {11,22}过滤出来集合1里不包含集合1和2的数据也就是33333
在Java中,可以使用`Set`接口和流(Stream)来实现这个需求。首先,我们需要创建两个`HashSet`,分别存储集合1和集合2的内容,然后使用`stream()`方法将集合1转换成流,通过`filter()`方法过滤出不在集合2中存在的元素。下面是一个示例代码:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
// 创建集合1和2
Set<Integer> collection1 = new HashSet<>(Arrays.asList(1111, 2222, 33333));
Set<Integer> collection2 = new HashSet<>(Arrays.asList(11, 22));
// 使用流过滤掉集合1中不在集合2里的元素
Set<Integer> result = collection1.stream()
.filter(value -> !collection2.contains(value))
.collect(Collectors.toSet());
System.out.println("过滤后的结果: " + result);
}
}
```
当你运行这段代码,输出将会是 `过滤后的结果: [1111, 2222]`,因为数字33333不在集合2中。
java实现有两个集合,其中集合1 {1111,2222,33333},集合2 {11,22},要求过滤出来集合1里不包含集合2中每个元素模糊查询后的数据
在Java中,你可以使用`Stream API`结合`Pattern`类来进行模糊查询并过滤出两个集合中不匹配的数据。假设我们想要实现基于部分字符串匹配(比如忽略大小写),你可以这样做:
```java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
List<Integer> collection1 = Arrays.asList(1111, 2222, 33333);
List<String> collection2 = Arrays.asList("11", "22");
// 创建一个模式,忽略大小写
Pattern pattern = Pattern.compile("(?i)" + String.join("|", collection2.stream().map(String::toLowerCase).collect(Collectors.toList())));
// 使用Stream API过滤collection1
List<Integer> filteredCollection1 = collection1.stream()
.filter(value -> !pattern.matcher(value.toString()).find())
.collect(Collectors.toList());
System.out.println(filteredCollection1); // 输出:[33333] 或者 [] (如果集合2的所有元素都存在于集合1中)
阅读全文