我正在尝试使用TreeMap按日期键在Java中对地图进行排序。这是我的代码
public static void sort() { BufferedReader br; String line; String[] data; Date date ; DateFormat df = new SimpleDateFormat("dd-mm-YYY"); Map<Date,String> map = new TreeMap<Date,String>(); try { br = new BufferedReader(new FileReader( "/home/user/Desktop/train/2013-training_set.txt")); int i=0; while ((line = br.readLine()) != null) { ++i; data = line.split(":"); map.put(df.parse(data[1]), line); } System.out.println(map.size()+" i = "+i); Set st = mp.entrySet(); Iterator it = st.iterator(); while (it.hasNext()) { Map.Entry me = (Map.Entry) it.next(); System.out.print(me.getKey() + "->:"); System.out.println(me.getValue()); } } catch (Exception e) { e.printStackTrace(); } }
将date[1]含有像(例如21-3-2013)以字符串格式和外观日期。问题在于,它仅在TreeMap(mp)中存储12个键值对(每月一个),而不是预期的103(i)。有任何想法吗 ?
date[1]
请参阅http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html。
y表示年,M表示年月,d表示月日。具体来说,小写的m是小时,而大写的M是月。