lock.notifyAll();
}
}
<<<<<<< HEAD
public static void runInAnThread(Runnable runnable) {
new Thread(runnable).start();
=======
/**
* map对象浅过滤,返回值是一个新的map
* @param source 原始的map对象
* @param prefix 包含什么前缀,并移除前缀
* @param include 正则表达式 仅包含哪些key(如果有前缀要求,则已经移除了前缀)
* @param exclude 正则表达式 排除哪些key(如果有前缀要求,则已经移除了前缀)
* @param map 映射map, 原始key--目标key (如果有前缀要求,则已经移除了前缀)
* @return 经过过滤的map,与原始map不是同一个对象
*/
public static Map filter(Map source, String prefix, String include, String exclude, Map keyMap) {
LinkedHashMap dst = new LinkedHashMap();
if (source == null || source.isEmpty())
return dst;
Pattern includePattern = include == null ? null : Pattern.compile(include);
Pattern excludePattern = exclude == null ? null : Pattern.compile(exclude);
for (Entry en : source.entrySet()) {
String key = en.getKey();
if (prefix != null) {
if (key.startsWith(prefix))
key = key.substring(prefix.length());
else
continue;
}
if (includePattern != null && !includePattern.matcher(key).find())
continue;
if (excludePattern != null && excludePattern.matcher(key).find())
continue;
if (keyMap != null && keyMap.containsKey(key))
dst.put(keyMap.get(key), en.getValue());
else
dst.put(key, en.getValue());
}
return dst;
>>>>>>> 899114230c9767d28853b44373c4cdecf88554d6
}
} |