java实现有两个集合,其中集合1 {1111,2222,33333},集合2 {11,22},要求过滤出来集合1里不包含集合2中每个元素模糊查询后的数据
时间: 2024-10-24 21:12:08 浏览: 20
在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中)
阅读全文