Предполагая, что stock
- это Array
объектов, имеющих поле int, например, представления, которые вы используете для оценки популярности, вы можете (java 8+) использовать Streams
для достижения этой цели:
Class[] topThree = Arrays.stream(stock)
.sorted(Comparator.comparingInt(Class::getViews).reversed())
.limit(3)
.toArray(Class[]::new);
Где getViews
- это метод, который извлекает сравниваемое свойство int, а Class
- тип объекта, хранящегося в stock
.
Или, если вы хотите List<Class>
:
List<Class> topThree = Arrays.stream(stock)
.sorted(Comparator.comparingInt(Class::getViews).reversed())
.limit(3)
.collect(Collectors.toList());
Или, глядя на ваш пример, выглядит так, как будто вы просто хотите добавить String
представление объектов к popularTxt
:
Arrays.stream(stock)
.sorted(Comparator.comparingInt(Class::getViews).reversed())
.limit(3)
.map(Class::toString)
.forEach(popularTxt.getItems()::add);