JAVA HashMap单key多value的实现及迭代器打印(附源码)
2014-04-15 11:18
465 查看
(转载请注明出处:http://blog.csdn.net/buptgshengod)
![](https://img-blog.csdn.net/20140415110224593?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYnVwdGdzaGVuZ29k/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
1.背景
在处理大量数据的时候,当遇到单键值多数据的情况下可以选择用HashMap配合ArrayList进行存储,使用迭代器打印相关数据。如下图:2.代码实现
import java.awt.List; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; public class Main { public static void main (String[] args) throws IOException{ BufferedWriter writer = new BufferedWriter(new FileWriter(new File("/Users/hakuri/Desktop/data2.txt"))); BufferedReader reader=new BufferedReader(new FileReader(new File("/Users/hakuri/Desktop/final.txt"))); String lineTxt = null; //构建hashmap,单键值多数值,多个数值存在list里面。 HashMap<String,ArrayList> custom=new HashMap<String,ArrayList>(); while((lineTxt = reader.readLine()) != null){ //System.out.println(lineTxt); String line=lineTxt.trim(); String[] part=line.split(","); if(!custom.containsKey(part[0])){ custom.put(part[0],new ArrayList()); custom.get(part[0]).add(part[1]); } else{ //获得对应键值的list custom.get(part[0]).add(part[1]); } } Iterator<String> it=custom.keySet().iterator();//根据hashmap的键值创建迭代器 while( it.hasNext()){ String key=(String)it.next(); ArrayList value=custom.get(key); System.out.println(key+"--"+value); } } }
3.数据工程下载
注意更改相应路径——下载地址(HashMap工程)相关文章推荐
- [转载]iOS6新特征:UICollectionView官方使用示例代码研究
- Macros for Build Commands and Properties (zz)
- IE8及低版本浏览器不支持CSS3 media queries的解决方法
- grub rescue问题
- JAVA设计模式(04):创建型-建造模式(Builder)
- 设置 UILabel 和 UITextField 的 Padding 或 Insets (理解UIEdgeInsets)
- 设置 UILabel 和 UITextField 的 Padding 或 Insets (理解UIEdgeInsets)
- MiniGUI - 列表型控件
- 转发: The builder&nbs…
- bluetooth开发(四)------Bluez运行环境的创建与蓝牙的初始化
- 浮点数保留小数点位数的做法之一: Math.round(_value * n) / n;
- IOS 学习笔记(6) 控件 文本域(UITextField)的使用方法
- UI控件----ProgressBar进度条 实例总结
- js--easyUI datetimebox 自定义显示格式 .
- 模型验证组件 FluentValidation
- common sequence
- 别用visual editor了,用WindowBuilder
- 使用Xxx.valueOf(xxx)来进行类型转换时的注意事项
- jq ui.dialog.js简介
- extjs frame:true有什么用