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());
        }
    }
}

执行结果如下图:

修改与遍历MAP的更多相关文章

  1. java遍历map方法

    java 代码: import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class Map ...

  2. [转载] Java 遍历 Map 的 5 种方式

    目录 1 通过 keySet() 或 values() 方法遍历 2 通过 keySet 的 get(key) 获取值 3 通过 entrySet 遍历 4 通过迭代器 Iterator 遍历 5 通 ...

  3. golang遍历时修改被遍历对象

    目录 前言 遍历切片 遍历map 总结 前言 很多时候需要将遍历对象中去掉某些元素,或者往遍历对象中添加元素,这时候就需要小心操作了. 对于go语言中的一些注意事项我做了总结和示例,留下点笔记. 遍历 ...

  4. 遍历map的四种方法

    方法一  在for-each循环中使用entries来遍历这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用.注意:for-each循环在Java 5中被引入所以该方法只能应用于j ...

  5. java 遍历map 方法 集合 五种的方法

    package com.jackey.topic; import java.util.ArrayList;import java.util.HashMap;import java.util.Itera ...

  6. Java中遍历Map集合的四种方法

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...

  7. Java中如何遍历Map对象的4种方法

    在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHa ...

  8. java遍历map的四种方式

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...

  9. 数组遍历map和each使用

    <body> <input type="/> <input type="/> <input type="/> </b ...

随机推荐

  1. cpp 学习笔记

    1.C++中模仿gets是  getline(cin, string object) #include <bits/stdc++.h> #define IOS ios::sync_with ...

  2. IntelliJ IDEA里找不到javax.servlet的jar包

    此处有小坑,请注意: https://mvnrepository.com网站查询到的servlet的包的格式为: provided group: 'javax.servlet', name: 'jav ...

  3. (转)python 列表与元组的操作简介

    python 列表与元组的操作简介 原文:https://www.cnblogs.com/QG-whz/p/4782809.html 阅读目录 列表 list函数 列表的基本操作 列表方法 元组 tu ...

  4. 通过rsync+inotify实现数据的实时备份(多台备份机)

    在前面的博文中,我讲到过利用rsync实现数据的镜像和备份,但是要实现数据的实时备份,单独靠rsync还不能实现,本文就讲述下如何实现数据的实时备份. 一.rsync的优点与不足  与传统的cp.ta ...

  5. Quartz使用(5) - Quartz的Job存储及集群部署

    1. Job的存储与持久化 Quartz的JobStore接口定义了作业Job.触发器trigger.调度器Scheduler等数据存储机制.Quartz主要有两种Job存储类型:内存存储RAMJob ...

  6. HDU 5375——Gray code——————【dp||讨论】

    Gray code Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total S ...

  7. 【转】浅谈https\ssl\数字证书

    转载请注明出处:http://www.cnblogs.com/P_Chou/archive/2010/12/27/https-ssl-certification.html 全球可信的SSL数字证书申请 ...

  8. Unity C# ref与out

    ref和out 都是按地址传递的,使用后都将改变原来的数值.ref 方法参数关键字使方法引用传递到方法的同一个变量.当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中.若要使用 r ...

  9. synchronized + volatile + ThreadLocal

    线程的共享 synchronized  +  volatile + ThreadLocal <1> synchronized 锁住的是对象,当用它来锁住一个类时,实际上也是锁的一个对象. ...

  10. nopCommerce如何支持MySQL

    此方法支持nopCommerce2.4以上版本(缺少的代码,可参照nopCommerce2.6源码) nopCommerce 4.1 如何支持Mysql 请看 Url:  http://www.nop ...