(转载请注明出处:http://blog.csdn.net/buptgshengod)
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工程)