jdk1.7和jdk1.6的Collections.sort方法不一樣

Java代碼
  1. Collections.sort(list, new Comparator<AAAVo>() {  
  2.                         @Override  
  3.                         public int compare(AAAVo vo1, AAA vo2) {  
  4.                             if(vo1==null||vo2==null){  
  5.                                 return 0;  
  6.                             }  
  7.                             if(Integer.valueOf(vo1.getCouponValue())<Integer.valueOf(vo2.getCouponValue())){  
  8.                                 if(vo1.getConsumeTime().after(vo2.getConsumeTime())) {  
  9.                                     return 1;  
  10.                                 }else{  
  11.                                     return -1;  
  12.                                 }  
  13.                             }else{  
  14.                                 return -1;  
  15.                             }  
  16.                         }  
  17.                     });  
複製代碼
如果有三條數據 value爲50、10、10 
jdk1.6的情況下走不到Java代碼  [url=][/url]

  • if(vo1.getConsumeTime().after(vo2.getConsumeTime()))  


1.7時可以走到。因爲 在Java 6中Arrays.sort()和Collections.sort()使用的是MergeSort,而在Java 7中,內部實現換成了TimSort,其對對象間比較的實現要求更加嚴格
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章