2013-06-20 3 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)); 

Чтобы отсортировать на основе даты, вы должны преобразовать String в Date в компаратор, который вы уже делаете с помощью f.parse(firstString) и использовать Date «s compareTo().

+0

Массив General будет иметь много ярлыков, как дата, сумма ... Я хочу, чтобы отсортировать этот массив в порядке по дате по убыванию. Ниже приведен код даты из массива Строка firstString = gen11.getXXXXX(). ToString(); Строка secondString = gen22.getXXXX(). ToString(); Так что я могу напрямую сортировать в порядке убывания, используя firstString и firstString или I shld сначала сортировать в порядке возрастания, а ther I shld reverse.If это так, как я могу отменить это? – user2047507

+0

Какой тип массива? Это 'Object []'? – NINCOMPOOP

2

Только в обратном порядке, в котором вы сравните:

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