(转载请注明出处: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工程)