Рассмотрим список объектов пункта, где каждый элемент связан с целочисленным полем:Перечень объектов, которые имеют максимальное значение
Item[0]->1
Item[1]->4
Item[2]->2
Item[3]->9
Item[4]->1
Item[5]->9
Item[6]->3
Item[7]->6
Item[8]->7
Item[9]->9
Я хочу, чтобы отфильтровать список с деталями, которые имеют максимальное значение. В этом случае, поскольку максимальное число равно 9, я получу {Item[3],Item[5],Item[9]}
. Мой способ сделать это - сначала перебрать весь список, а затем сохранить максимальное значение (9), а затем повторить его и добавить элементы, которые имеют свое поле, равное 9, в новый список.
Но это много кода каждый раз, когда я хочу сделать что-то подобное, и не кажется очень эффективным. Есть ли лучший подход (с точки зрения эффективности или аккуратности)?
'Arrays.max (Item)' получает ваше максимальное количество, что экономит много итераций (EDIT :) в вашем собственном коде. – Charlie
Вам нужно сохранить порядок ввода? Вы можете сделать это за один проход, если нет (но это не будет аккуратно). –
@Charlie Не 'Arrays.max()' выполняет повторение для вас? –