首页 > 代码库 > java-Map

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");// 清空MaptransfromMap.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 =http://www.mamicode.com/ 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 =http://www.mamicode.com/ 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/falsetransfromMap.isEmpty();// 是否包含指定键,返回true/falsetransfromMap.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