2013-06-20 26 views
0
XXXXXVO[] general = XXXX.getXXXX(); 

Comparator comparator = new Comparator() { 
     DateFormat f = new SimpleDateFormat("dd/MM/yyyy"); 
     public int compare(Object obj1, Object obj2) { 

      XXXXX gen11 = (XXXXXVO) obj1; 
      XXXXX gen22 = (XXXXXVO) obj2; 

      String firstString = gen11.getXXXXX().toString(); 
      String secondString = gen22.getXXXX().toString(); 

      if (secondString == null || firstString == null) { 
       return 0; 
      } 


      return f.parse(firstString).compareTo(f.parse(secondString)); 

     } 
    };  

    Arrays.sort(general, comparator); 

上面是按升序對數組進行排序的代碼。 我想要降序。 我怎樣才能在JDK 1.4中反轉這個?如何反轉數組?

回答

1

我還沒有看完整個代碼。我所理解的是你需要顛倒順序,所以把compareTo()的結果乘以-1

return -1*f.parse(firstString).compareTo(f.parse(secondString)); 

排序根據日期,你要轉換StringDate中,你已經在使用f.parse(firstString)做比較,並使用DatecompareTo()

+0

的陣列一般都會有很多的標籤,如日期,金額...... 我想以降序基於日期順序數組。 以下代碼將從數組中獲取日期值 String firstString = gen11.getXXXXX()。toString(); String secondString = gen22.getXXXX()。toString(); 因此,我可以直接使用firstString和firstString按順序排序,或者先按升序排序,然後再按順序排序,如果是這樣,我怎麼能夠逆轉? – user2047507

+0

數組是什麼類型?它是一個對象[]嗎? – NINCOMPOOP

2

只是扭轉你比較順序:

return f.parse(secondString).compareTo(f.parse(firstString))