推荐你学习 Java8 lambda 表达式
测试案例如下:
@
Test public void test02(){
Map<String,Integer> map=new HashMap<>();
map.put("zhangsan",123);
map.put("lisi",123);
map.put("wangmazi",123);
Map<String,Integer> keyMap=map.entrySet()
.stream()
.collect(toMap(castKey().compose(Map.Entry::getKey),Map.Entry::getValue));
keyMap.entrySet().forEach(System.out::println);
}
/**
* @
Author: zms
* @
Description: 转换成一个 function
* @
Date: Create on 2019/4/11 10:57
*/
private Function<String, String> castKey() {
return this::opsForKey;
}
/**
* @
Author: zms
* @
Description: key 转换规则 默认保留自己自己的自己实现
* @
Date: Create on 2019/4/11 10:59
*/
private String opsForKey(String key){
//do something ...
//我这里直接就截取原始 key 值的第一位当作新 key 了吼
// 看你的规则 正则拿出大写字母就 ok 了
return key.substring(0, 1);
}