-
将一个Map<String,Integer> 转换成Map<String,String>
-
//创建一个创建Map的公共方法 private static <T> Map<String,T> newMap(String key,T val,Object...kv){ Map<String,T> ans = new HashMap<>(8); ans.put(key,val); for(int i=0,size = kv.length; i< size; i+=2){ ans.put(String.valueOf(kv[i]),(T)kv[i+1]); } return ans; }
-
基本的for循环转换
-
@Test public void forEachParse(){ Map<String,Integer> map = newMap("k",1,"a",2,"b",3); Map<String,String> strMap = new HashMap<>(map.size); for(Map.Entry<String,Integer> entry: map.entrySet()){ strMap.put(entry.getKey(),String.valueOf(entry.getValue())); } }
-
-
容器的流式使用来实现转换
-
@Test public void stream(){ Map<String,Integer> map = newMap("k",1,"a",2,"b",3); Map<String,String> strMap = map.entrySet().stream().collect( Collectors.toMap(Map.Entry::getKey,s->String.valueOf(s.getValue()),(a,b) ->a)); }
-
-
Guava的transform方式
-
@Test public void transfer(){ Map<String,Integer> map = newMap("k",1,"a",2,"b",3); Map<String,String> strMap = Maps.transformValues(map,String::valueOf); }
-
-