Как говорится в названии. Какая из двух следующих функций является наиболее эффективной для jvm.Какая из этих двух функций является самой высокой эффективностью
protected List<Car> filterByNote(String note, List<Car> cars)
{
List<Car> tempList = new ArrayList<>();
for(Car c : cars)
{
if(c.getNotes().contains(note))
{
tempList.add(c);
}
}
return tempList;
}
protected void filterByNote2(String note, List<Car> cars)
{
for(Car c : cars)
{
if(!c.getNotes().contains(note))
{
cars.remove(c);
}
}
}
Если кто-то может объяснить мне, почему одна функция более тяжелая, чем другая, это было бы здорово!
первый будет работать один, второй один будет кидает исключение, пойти с первым одним – user902383
Они делают разные вещи: один вносит изменения в список, еще один возвращает другой список. Вы не можете сравнивать их таким образом. –
Как вы их оценили? Они выполняют разные функции. Конечно, второй (если он правильный) быстрее, потому что он не создает никаких объектов. И, кроме того, второй не делает того, что он должен был делать. Почему «фильтр», когда он просто удаляет элемент из списка? –