java-Map

Posted Marydon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java-Map相关的知识,希望对你有一定的参考价值。

CreateTime--2017年5月26日08:44:16
Author:Marydon

三、java-Map

  需要导入包:

    java.util.Map

(一)数据格式介绍

  HashMap

{FHIGHPRICE_VILLLEVE=0, FSTATUS=1, FPROVLEVELLIMIT=1, FBEGINDATE=, FENDDATE=, FCLASSNAME=药品类, FITEMSIZE=, FHIGHPRICE_TOWNLEVEL=0, FCATALOGTYPE=, FVILLLEVELLIMIT=1, FID=400119, FCLIINHOSLIMIT=3, FHIGHPRICE_CITYLEVEL=0, FREMARK=, methodName=updateTDICTCHARGEITEM, FFORMS=, FITEMTYPE=0, FCLASSCODE=01, FGENERALCODE=, FRCODE=410000, FMEDICARE=2, FZJM=DSTN(YNS), FITEMCODE=W9999990019003y, FHIGHPRICE_COUNLEVEL=0, FDRUGTYPE=1, FITEMNAME=达沙替尼(依尼舒)(20mg×7粒), FTOWNLEVELLIMIT=1, FHIGHPRICE_PROVLEVEL=0, FCOUNLEVELLIMIT=1, FCOMPUTERATIO=1.0, FFEECODE=0101, FUNIT=, FORGLIMIT=0}

(二)操作Map

  3.2.1 增、改、删

// 添加指定元素(添加)
transfromMap.put("key", value);
// 修改指定元素(修改)
transfromMap.put("key", value2);
// 移除掉指定元素(删除)
transfromMap.remove("key");
// 获取指定元素(取值)
transfromMap.get("key");
// 清空Map
transfromMap.clear();

 

  3.2.2 迭代Map

Map<String,Object> map = new HashMap<String,Object>();
map.put("语文", 1);
map.put("数学", 2);
map.put("英语", 3);
map.put("历史", 4);
map.put("政治", 5);
map.put("生物", 6);
map.put("生物", 7);
map.put("化学", 8);
    3.2.2.1迭代Map
/**
 * 方法1:entrySet集合迭代
 */
Iterator iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
    Entry<String, Object> entry = iterator.next(); 
    System.out.println(entry.getKey() + "=" + entry.getValue());  
}
/**
 * 方法2:keySet集合迭代
 */
Iterator iterator = map.keySet().iterator();
while (iterator.hasNext()) {
    //获取键
    String key = iterator.next().toString();//或String key = (String)iterator.next();
    //根据键获取值
    Object value = map.get(key);
    System.out.println("键:"+ key + ",值:" + value);
}
/**
 * 方法3:entrySet集合for-each循环(推荐使用)
 * 这种方式必须声明泛型类型:
 * a.bizData使用Map接收必须得声明泛型;b.for-each()里的Entry的泛型控制可有可无
 * Map的泛型控制通常使用<String,Object>
 */
Map<String, Object> bizData = dataBus.getBizData();
for (Entry<String, Object> entry : bizData.entrySet()) {
    System.out.println(entry.getKey() + "=" + entry.getValue());
}
/**
 * 方法4:keySet集合for-each循环
 */
for (String key:map.keySet()) {
    System.out.println(key + "=" + map.get(key));
}

     3.2.2.2只迭代键

//只遍历键
for (String key:map.keySet()) {
    System.out.println(key);
}

    3.2.2.3只迭代值 

//只遍历值
for (Object val:map.values()) {
    System.out.println(val);
}

 

  3.2.3 其他常用操作

// 判断Map对象是否为空,返回true/false
transfromMap.isEmpty();
// 是否包含指定键,返回true/false
transfromMap.containsKey("key")

 

(三)格式转换

  3.3.1 Map集合转换成json

Map map = newHashMap();
map.put("name","json");
map.put("bool",Boolean.TRUE);
map.put("int", newInteger(1));
map.put("arr", new String[] {"a", "b" });
map.put("func", "function(i){return this.arr[i]; }");
JSONObject json =JSONObject.fromObject(map);// 转换成JSON对象

  3.3.2 将Map转换成字符串

    3.3.2.1 不含特殊转换格式
/**
* 将Map转换成字符串
*/
//方法一
String mapStr = String.valueOf(map);
//方法二
String mapStr = map.toString();
    3.3.2.2 指定字符串转换格式
/**
 * 将Map转换成字符串
 * 格式:键+"|"+值+"$"
 * @param map
 * @return
 */
private String MapToString(Map map) {
    String str = "";
    Iterator iterator = map.entrySet().iterator();
    while (iterator.hasNext()) {
        Entry<String, Object> entry = (Entry<String, Object>) iterator.next();
        str += entry.getKey() + "|" + entry.getValue() + "$";
    }
    return str;
} 

  3.3.3 Map.toString()后字符串转换回Map

/**
 * Map.toString()后字符串转换回Map
 * @param str Map字符串
 * @return Map对象
 */
public static Map<String, String> mapStringToMap(String str) {
    str = str.substring(1, str.length() - 1);
    String[] strs = str.split(",");
    Map<String, String> map = new HashMap<>();
    for (String string : strs) {
        String key = string.split("=")[0].trim();
        String value = string.split("=")[1].trim();
        map.put(key, value);
    }
    return map;
}

 

 

以上是关于java-Map的主要内容,如果未能解决你的问题,请参考以下文章

JAVA-Map

Java-Map中包含List遍历

java-Map接口

Java-Map集合的学习

java-map之hashmap

Java-Map映射集合实现省市级联选择框