java从Map中模糊匹配key值
Posted 王啸tr1912
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java从Map中模糊匹配key值相关的知识,希望对你有一定的参考价值。
如果我们想要从一个map集合中,模糊筛选出我们想要的key的集合应该如何处理呢?下面一个小例子解决此问题,但是性能上有待提高:
核心代码:
/**
* 从map中查询想要的map项,根据key
*/
public static Map<String, Object> parseMapForFilter(Map<String, Object> map,String filters)
if (map == null)
return null;
else
map = map.entrySet().stream()
.filter((e) -> checkKey(e.getKey(),filters))
.collect(Collectors.toMap(
(e) -> (String) e.getKey(),
(e) -> e.getValue()
));
return map;
/**
* 通过indexof匹配想要查询的字符
*/
private static boolean checkKey(String key,String filters)
if (key.indexOf(filters)>-1)
return true;
else
return false;
此代码通过entryset进行遍历,找出其中可以匹配的项目,然后再重新collect成我们想要的map,示例:
public static void main(String[] args)
Map<String,Object> params = new HashMap<>(16);
params.put("a-1","1");
params.put("a-2","2");
params.put("a-3","3");
params.put("b-1","1");
params.put("b-2","2");
params.put("b-3","3");
params.put("c-1","1");
params.put("c-2","2");
params.put("c-3","3");
Map<String, Object> a = parseMapForFilter(params, "a");
System.out.println(JSON.toJSONString(a));
结果:
以上是关于java从Map中模糊匹配key值的主要内容,如果未能解决你的问题,请参考以下文章
java中是如何实现基于文字标题的模糊匹配的,下面的代码是实现这个功能的吗?
Java程序如何模糊匹配access数据库,然后access返回一个相应值