package com.*;
import java.util.*;
/**
* Created by HP on 2018/8/2.
*/
public class Test {
//定义一个用于转换map的配置信息
private static Map<String,String> map = new HashMap<>();
//静态块,初始化静态成员变量
static {
map.put("1","壹");
map.put("2","贰");
map.put("3","叁");
map.put("a","A");
map.put("b","B");
map.put("c","C");
}
/**
* 转换,通过给定的map,将其中的key,value转换成与之对应的信息
* 比如,将一些英文全部转换成中文
* 先定义一个map,用于存储转换之后的信息。
* 遍历给定的信息,将信息按照某种规则存入新的map之后,
* 则删除该元素,节省其对内存的使用
* @param mapParam
* @return
*/
private static Map<String,String> convertMap(Map<String,String> mapParam){
Map<String,String> newMap = new HashMap<>();
Iterator<Map.Entry<String,String>> it = mapParam.entrySet().iterator();
while(it.hasNext()){
Map.Entry<String,String> entry = it.next();
String key = entry.getKey();
String value = entry.getValue();
if(key.equals("test")){
newMap.put(key,value);
}else {
newMap.put(map.get(key),map.get(value));
}
it.remove();
}
return newMap;
}
public static void main(String[] args) {
//原始map
Map<String,String> sourceMap = new HashMap<>();
sourceMap.put("1","a");
sourceMap.put("2","b");
sourceMap.put("3","c");
sourceMap.put("test","nnnnnnn");
//调用转换方法,目标是将key中的数字转换成中文大写,将value的字母转换成大写,只有key为test时保持该条数据不变
Map<String,String> newMap = convertMap(sourceMap);
//遍历转换后的map
for(Map.Entry<String,String> entry:newMap.entrySet()){
System.out.println(entry.getKey() + " --> " + entry.getValue());
}
}
}
执行结果如下图: