У меня есть метод, который возвращает Arraylist элементов.Иногда мне нужен весь список, а иногда просто проверить, не является ли результирующий список не пустым (просто bool).
Поскольку этот метод выполняет некоторые тяжелые задачи, чтобы проверить, следует ли что-то добавить в список результатов,Есть ли способ разбить метод в случае, если он добавляет один элемент в список ??
Я хотел бы использовать тот же метод, но иногда ломать, если один элемент добавляется в список, а иногда и позволить емусделать всю работу (и добавить все остальное).
Я могу передать некоторые логические флаги, которые будут указывать, должен ли метод прерываться, когда происходит событие добавления первого элемента, но мне интересно, есть ли более элегантное решение (с потоком или чем-то ...).
Я добавил псевдокод в качестве примера.Этот метод является рекурсивным, и я хотел бы (необязательно) избежать дополнительных рекурсивных вызовов, если я добавлю элемент в первой итерации:
List<String> getData(argument) {
List<String> elements = new ArrayList<>;
... // do some heavy stuff that produces flag 'shouldAddElement'
if (shouldAddElement) {
elements.add('a');
}
if (someCondition) {
elements.addAll(getData(argument));
}
return elements;
}