У меня есть архаист по запасам, каждый из которых имеет имя, биржу, цену и дату.Сортировка ArrayList объектов с помощью float
Я пытаюсь организовать arraylist по ценам, которые являются поплавками.
Любые указатели будут оценены по достоинству.
У меня есть архаист по запасам, каждый из которых имеет имя, биржу, цену и дату.Сортировка ArrayList объектов с помощью float
Я пытаюсь организовать arraylist по ценам, которые являются поплавками.
Любые указатели будут оценены по достоинству.
Используйте java.util.Collections.sort()
и укажите свой собственный java.util.Comparator
.
Я предполагаю, что у вас есть класс для хранения ваших цен. Самый простой способ здесь - реализовать Comparable в этом классе и вернуться примерно как Float.compare(this.price, other.price)
.
Вы должны реализовать свой собственный компаратор или сделать ваши stocprices расширяет Сопоставимые
Collections.sort(stockPricesArrayList, new Comparator<StockPrice>() {
public int compare(StockPrice p1, StockPrices p2) {
return (int) p1.getPrice()-p2.getPrice();
}
}
работает для целого числа. –
Вы должны реализовать интерфейс Сопоставимые, и определить метод CompareTo() для вашего класса. Как только вы закончите, вы можете иметь арраиста и отсортировать его. См. Это пример link. Немного больше Importants ссылки another example и diff between comparable and comparator useful information
why -1? что случилось с ответом? – aProgrammer
В классе 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()
Согласно требует от 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());
}
});
спасибо. Считается ли это во внимание 28 больше, чем -123? –
@Vuzuggu, вы определяете правила для сортировки в 'Comparator'. – hmjd