HashMap的put()方法
来源:互联网 发布:高斯图像金字塔算法 编辑:程序博客网 时间:2024/05/16 07:13
java Debug ------------------集合 HashMap
需求: 希望从文件里读数据,每一行都存到HashMap中,key是每一行第一个段,Value是ArrrayList对象,key如果有重复责存入同一个ArrayList中;
budge 修复后:
if(pName_file.equals(pName_map)){/// sop("if ::" + pName_map); list.add(line);}else{/// sop("else ::" + pName_file);hm.put(pName_map, new ArrayList(list)); // Debug 此处的value必须要new 一个新的对象,不然后面list对象改动map中也会改变pName_map = pName_file;list.clear();list.add(line);}完整代码:class HashMapTest{public static void main(String[] args){readFromFile();}public static void readFromFile(){HashMap hm = new HashMap();List list = new ArrayList();BufferedReader bufr = null;String pName_map = null;String[] str_arr = null;String line = null;try{//打开文件File f = f = new File("D:\\桌面\\xxxxxxxxxxx\\yyyyyyyyyy\\zzzzzzzzzzz\\test");bufr =new BufferedReader( new InputStreamReader(new FileInputStream(f)));// 获取 文件第一行的包名 if ((line = bufr.readLine()) != null){str_arr = line.split(";");assert(str_arr.length >= 3);pName_map = str_arr[0];//cname = str[1];//mname = str[2];///sop("FIRST LINE:" + line);list.add(line);}//在读取文件信息 到HashMapwhile((line = bufr.readLine()) != null){str_arr = line.split(";");assert(str_arr.length >= 3);String pName_file = str_arr[0];///sop(pName_file);///sop(pName_map);if(pName_file.equals(pName_map))// 注意对象的比较 只能是equals {///sop("if ::" + pName_map);list.add(line);}else {///sop("else ::" + pName_file);hm.put(pName_map, new ArrayList(list)); // Debug 此处的value必须要new 一个新的pName_map = pName_file;list.clear();list.add(line);}}hm.put(pName_map, new ArrayList(list));output(hm);}catch (Exception e){e.printStackTrace();}finally{if (bufr != null){try{bufr.close();}catch (Exception e){e.printStackTrace();}}}}public static void output(Map map){ if (map != null) { Object key = null; Object value = null; //使用迭代器遍历Map的键,根据键取值 Iterator it = map.keySet().iterator(); while (it.hasNext()) { key = it.next(); value = map.get(key); //sop(value.toString());ArrayList v = (ArrayList)value;//sop(v.toString());System.out.println("key: " + key + "; value: "); Object[] objArr = v.toArray();for (int i = 0; i < objArr.length ; i++ ){sop(objArr[i]);}/*Iterator it1 = v.listIterator();while(it1.hasNext()){sop(it1.next() + "\n");}*/ } /* //或者使用迭代器遍历Map的记录Map.Entry Map.Entry entry = null; it = map.entrySet().iterator(); while (it.hasNext()) { //一个Map.Entry代表一条记录 entry = (Map.Entry)it.next(); //通过entry可以获得记录的键和值 //System.out.println("key: " + entry.getKey() + "; value: " + entry.getValue()); } */ } }public static void sop(Object obj){System.out.println(obj);}}
0 0
- HashMap的put()方法
- Java HashMap的put()方法、size()方法
- HashMap的put和get方法原理
- HashMap的put方法返回值
- 多线程下HashMap的put方法失效
- HashMap的put,get方法实现!
- HashMap.put/get方法
- java HashMap的put
- HashMap学习笔记:put方法
- HashMap的原理分析(1)put方法的实现
- java4Android(22)Map/HashMap的方法:put()/set()
- Java HashMap的数据结构以及put和get方法
- 【源码分析】HashMap的put(K k,V v)方法
- 关于hashmap put 的问题
- HashMap的put源码解析
- HashMap源码解析——put方法
- HashMap之put方法源码解析
- HashMap源码--(三)put方法
- 计算机网络基础(一)
- 工作总结10 重构认识之三
- Android中怎么启动关闭Service及功能解释 .
- c++中友元类的使用
- 数据库连接池的工作机制
- HashMap的put()方法
- [leetcode]单链表插入排序
- java jna调用迅雷接口下载
- Oracle 学习笔记 11 -- 视图 (VIEW)
- 二叉树递归与非递归遍历(附完整源码)
- 面向对象
- 国内5款优秀的WEB前端框架
- 最小费用最大流问题
- 一位淘宝卖家的创业经历 说多了都是泪?!