小编典典

在Java中按日期键对地图进行排序

java

我正在尝试使用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)。有任何想法吗


阅读 273

收藏
2020-11-30

共1个答案

小编典典

请参阅http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

y表示年,M表示年月,d表示月日。具体来说,小写的m是小时,而大写的M是月。

2020-11-30