HashMap<String, List<CommodityEntity>> 现在有这么一个类型的数据,我要给它实现一二级模糊搜索功能。请帮我写Java代码。
时间: 2024-05-05 10:21:48 浏览: 96
HashMap<E>泛型类实现的接口-java基础课程ppt
好的,下面是Java代码:
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class FuzzySearch {
// 一级模糊搜索
public static List<CommodityEntity> fuzzySearchOneLevel(String key, Map<String, List<CommodityEntity>> map) {
List<CommodityEntity> result = new ArrayList<>();
for (Map.Entry<String, List<CommodityEntity>> entry : map.entrySet()) {
if (entry.getKey().contains(key)) {
result.addAll(entry.getValue());
}
}
return result;
}
// 二级模糊搜索
public static List<CommodityEntity> fuzzySearchTwoLevel(String key, Map<String, List<CommodityEntity>> map) {
List<CommodityEntity> result = new ArrayList<>();
for (Map.Entry<String, List<CommodityEntity>> entry : map.entrySet()) {
if (entry.getKey().contains(key)) {
result.addAll(entry.getValue());
} else {
for (CommodityEntity entity : entry.getValue()) {
if (entity.getName().contains(key)) {
result.add(entity);
}
}
}
}
return result;
}
public static void main(String[] args) {
Map<String, List<CommodityEntity>> map = new HashMap<>();
// 填充数据
String key = "模糊搜索的关键词";
List<CommodityEntity> result = fuzzySearchTwoLevel(key, map);
System.out.println(result.toString());
}
}
// 商品实体类
class CommodityEntity {
private String name;
// 其他字段
// ...
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
```
其中,`fuzzySearchOneLevel`方法实现了一级模糊搜索,`fuzzySearchTwoLevel`方法实现了二级模糊搜索。你可以根据需要调用其中的一个方法,传入搜索关键词和数据源`map`即可。本代码中使用了Java自带的Map集合,你也可以使用其他类似数据结构。
阅读全文