項目需要,放到list的資料,想讓按照時間排序,該怎麼處理呢?

最初設想使用:時間long型
private void testTimes() throws InterruptedException{ Calendar cal=Calendar.getInstance(); cal.add(Calendar.DATE, 1); cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0); Long time1=cal.getTimeInMillis(); Calendar ca2=Calendar.getInstance(); ca2.add(Calendar.DATE, 1); ca2.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0); Long time2=ca2.getTimeInMillis(); System.out.println(time1+"--"+time2); }
發現整型可能不一緻,即有時候一緻,有時候不一緻。
經測試發現,Collections提供了排序功能:
private void testSort(){ List cals=new ArrayList(); Calendar cal3=Calendar.getInstance(); cal3.add(Calendar.DATE, 2); cal3.set(cal3.get(Calendar.YEAR), cal3.get(Calendar.MONTH), cal3.get(Calendar.DAY_OF_MONTH), 0, 0, 0); Calendar cal4=Calendar.getInstance(); cal4.add(Calendar.DATE, 2); cal4.set(cal4.get(Calendar.YEAR), cal4.get(Calendar.MONTH), cal4.get(Calendar.DAY_OF_MONTH), 0, 0, 0); Calendar cal1=Calendar.getInstance(); cal1.add(Calendar.DATE, 2); cal1.set(cal1.get(Calendar.YEAR), cal1.get(Calendar.MONTH), cal1.get(Calendar.DAY_OF_MONTH), 0, 0, 2); Calendar cal2=Calendar.getInstance(); cal2.add(Calendar.DATE, 2); cal2.set(cal2.get(Calendar.YEAR), cal2.get(Calendar.MONTH), cal2.get(Calendar.DAY_OF_MONTH), 0, 0, 0); cals.add(cal3); cals.add(cal4); cals.add(cal1); cals.add(cal2); Calendar minTime=Collections.min(cals); System.out.println(DateUtils.formatDate(Collections.min(cals).getTime(),"yyyy-MM-dd HH:mm:ss")); for(int i=0;i
再來考慮map的時間排序如何做?
hashMap排序,示例:
private void test(){ Map> unSupportedDatesMap=new HashMap>(); unSupportedDatesMap.put("14:00-18:00