我有一个固定大小的集合,集合比较小,集合里面包含的都是一个类别的东西,如:体育用品、洗漱用品之类、餐饮服务之类的,如何实现用户输入一个词汇自动关联到集合里面的类别词汇?例如输入跑步机能关联找到体育用品,输入吃饭能关联到餐饮服务,输入牙膏能关联到洗漱用品?有没有大牛做过相关的工作能给一点思路的?
用hashmap hashset之类的,前者是分类,后者是词汇。
输入词汇,在hashmap hashset之类的查找对应的分类。
这你必须再分小类,小类可以不向用户展示,同时生成拼音全写和简写,搜索时从小类和大类一起搜,都返回大类就行了
我建议你
集合中的内容应该是:
map :{体育用品:["跑步机","乒乓球","橄榄球"]}等等。
然后,你搜索时,查询的是集合中map中的数组(就是value值)中是否匹配。然后返回该key,也就是体育用品。
建立一个List集合,存放所有类别的数据,每一个元素都按照 类别_元素名 命名,如 "体育用品_跑步机"。截取 "_" 字符后的部分与用户
输入的字符串进行比较,如果相同,截取 "_" 字符前的部分返回,即返回物品对应的类别。
public String filter(String in,List data){
in=in.trim();
String result="";
String mark;
for(String s:data){
mark=s.substring(s.indexOf("-")+1);
if (in.equals(mark)){
result = s.substring(0,s.indexOf("-"));
break;
}
}
return result;
}
在hashmap hashset之类的查找对应的分类。搜索时从小类和大类一起搜
整个自关联的数据库就行了,和他们的map的意思差不多,就像省市县三级联动差不多