java实现有两个集合,其中集合1 {张三,李四,王五},集合2 {张,陈},要求过滤出来集合1里的数据不包含集合2中每个元素模糊查询后的数据
时间: 2024-10-24 09:18:09 浏览: 23
在Java中,你可以通过遍历集合并使用`contains()`方法来进行模糊查询,同时利用HashSet的特性来快速判断一个元素是否在另一个集合中。这里假设我们对字符串进行了简单的模糊匹配,比如只看首字母。首先,我们需要将集合2转换成HashSet以便于O(1)的时间复杂度查找。
以下是一个示例代码:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
// 集合1
Set<String> set1 = new HashSet<>(Arrays.asList("张三", "李四", "王五"));
// 集合2 - 只保留首字符
Set<String> set2KeySet = new HashSet<>();
for (String s : Arrays.asList("张", "陈")) {
set2KeySet.add(s.charAt(0) + "");
}
// 过滤出集合1中不包含集合2模糊查询结果的元素
set1.removeAll(set2KeySet);
System.out.println("过滤后的集合1: " + set1);
}
}
```
在这个例子中,`set1.removeAll(set2KeySet)`会从`set1`中移除所有在`set2KeySet`中存在的首字符匹配项。最后打印出来的`set1`就是满足条件的结果。
阅读全文