我有一个存在内存中的文件,我想构建一个类型为HashMap的映射表:
HashMap<Date, List<String>>
超出了它的范围。文件的示例记录如下:
[1987-11-19=[Ashwin Anthony, 100000065750184, /sdcard/DirPrime/1389422388122.jpg]
我有的示例代码如下:
public void readSDMap(){
try{
File toRead=new File("/sdcard/DirPrime/filetwo.txt");
FileInputStream fis=new FileInputStream(toRead);
Scanner sc=new Scanner(fis);
HashMap<Date,List<String>> mapInFile=new HashMap<Date,List<String>>();
String currentLine;
while(sc.hasNextLine()){
currentLine=sc.nextLine();
StringTokenizer st=new StringTokenizer(currentLine,"=",false);
**//error here**
The method put(Date, List<String>) in the type
HashMap<Date,List<String>> is not applicable for the
arguments (String, String)
mapInFile.put(st.nextToken(),st.nextToken());
}
fis.close();
System.out.println(mapInFile);
//print All data in MAP
for(Map.Entry<Date,List<String>> m :mapInFile.entrySet()){
// System.out.println(m.getKey()+" : "+m.getValue());
}
}catch(Exception e){}
}
如何重构地图,我无法理解如何制作地图的值部分。这是一个列表。
编辑 (这只是一个快速解决方案,请忽略我将字符串转换为日期的不规范方式) 解析日期后:
Date d = null;
try {
d = new SimpleDateFormat("yyyy-MM-dd"/*, current*/).parse(st.nextToken());
} catch (ParseException e) {
e.printStackTrace();
}
Date d1 = new java.sql.Date(d.getTime());
mapInFile.put(d1,st.nextToken());
我对解决后半部分的方程感兴趣,即构建一个列表。