月关宝盒
这个简单可以并行stream+map+collector很方便代码的话,我现在不方便敲代码,有时间给你补上,但是需要你们的项目支持jdk8更新(抱歉,刚上班,给你写了一下,你看看和你的业务匹配吗,另外试下效率,当然,还有改进的空间...)注意:业务方法用private修饰,避免暴露public class Test { public static void main(String[] args) { // 构造参数
List<Map<String, Object>> input = new ArrayList<Map<String, Object>>() {{ add(Collections.singletonMap("one", 1)); add(Collections.singletonMap("two", 2)); add(Collections.singletonMap("three", 3));
trimToSize();
}}; // 开始转换
List<Map<String,String>> output = input.parallelStream().map(Test::convert).collect(toList()); // 验证
output.forEach(m->{
m.forEach((k, v)-> System.out.println(k + "\t" + v));
});
} /**
* 业务
* */
private static Map<String, String> convert(Map<String, Object> map) {
Objects.requireNonNull(map);
Map<String, String> result = new ConcurrentHashMap<>(map.size()); // 业务比较繁杂的,可以用compute方法
map.forEach((key, value) -> result.put(key, value.toString())); return result;
}
}