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);
/** * 方法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();
/** * 将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的主要内容,如果未能解决你的问题,请参考以下文章