2012-03-30 2 views

ответ

6

Используйте java.util.Collections.sort() и укажите свой собственный java.util.Comparator.

+0

спасибо. Считается ли это во внимание 28 больше, чем -123? –

+0

@Vuzuggu, вы определяете правила для сортировки в 'Comparator'. – hmjd

0

Я предполагаю, что у вас есть класс для хранения ваших цен. Самый простой способ здесь - реализовать Comparable в этом классе и вернуться примерно как Float.compare(this.price, other.price).

3

Вы должны реализовать свой собственный компаратор или сделать ваши stocprices расширяет Сопоставимые

Collections.sort(stockPricesArrayList, new Comparator<StockPrice>() { 

    public int compare(StockPrice p1, StockPrices p2) { 
     return (int) p1.getPrice()-p2.getPrice(); 
    } 
} 
+0

работает для целого числа. –

0

Вы должны реализовать интерфейс Сопоставимые, и определить метод CompareTo() для вашего класса. Как только вы закончите, вы можете иметь арраиста и отсортировать его. См. Это пример link. Немного больше Importants ссылки another example и diff between comparable and comparator useful information

+0

why -1? что случилось с ответом? – aProgrammer

1

В классе StockPrice можно реализовать Сопоставимые. Это будет выглядеть так:

public class StockPrice implements Comparable<StockPrice> { 

    // All your code here 

    @Override 
    public int compareTo(StockPrice another) { 
     // price fields should be Float instead of float 
     return this.price.compareTo(another.price); 
    } 

} 

Затем вы можете использовать Collections.sort()

0

Согласно требует от JDK 1.7, результаты должны быть такими же, когда обратное положение по Params-х годов. Таким образом, вычесть будет неправильно, я думаю, что это самый простой способ сортировать массивы с плавающей запятой:

Collections.sort(Arrays, new Comparator<Object>() { 
      @Override 
      public int compare(Object o1, Object o2) { 
       return Float.compare(o1.getFloatValue(), o2.getFloatValue()); 
      } 
     }); 
Смежные вопросы