Я использую огромный ArrayList с кодом ниже
public final List<MyClass> list = new ArrayList<>();
public void update(MyClass myClass) {
int i;
for (i=0; i < list.size(); i++) {
if (myClass.foo(list.get(i))) {
list.set(i, myClass);
break;
}
}
if (i == list.size()) {
list.add(myClass);
}
}
Список очень большой. Есть что-то еще, что я могу сделать, чтобы повысить производительность в этом сценарии? Может быть, использовать какую-то функцию Java 8, заменить ArrayList или что-то в этом роде.
Другой код, который слишком долго запускается, связанный с этим списком, является кодом ниже:
public List<MyClass> something(Integer amount) {
list.sort((m1, m2) -> Double.compare(m2.getBar(), m1.getBar()));
return list.stream()
.limit(amount)
.collect(Collectors.toList());
}
Любая помощь приветствуется, спасибо всем