Примечание: Пожалуйста, измените название, если вы могли бы написать лучше .. Я понятия не имею, как объяснить это лучше ..Как добавить все строки в ArrayList из списка наиболее эффективных объектов?
к проблеме: Я использую автозаполнение в форме JavaFX и нужно получить все клиенты firstName в список для строк. Я использовал JPA, чтобы получить всех клиентов из базы данных. Так что я немного беспокоился о скорости моего кода .. Вы видите, почему ..
Пример кода:
public static List<String> getAllFirstNamesCustomer() {
List<String> names = new ArrayList<>();
for (Customer c : CustomerBean.getAllCustomers()) {
names.add(c.getCName());
}
List<String> output =
new ArrayList<>(new LinkedHashSet<>(names));
return output;
}
EDIT:
Подумайте я нашел лучший способ:
public static List<String> getAllFirstNamesCustomer() {
return em.createNativeQuery("select DISTINCT cname from customer").getResultList();
}
Если вы беспокоитесь о дубликатах, я мог бы начать с 'Set 'вместо' ArrayList', если возможно, у меня будет запрос JPA и удалите дубликаты, если это возможно. Я бы не стал беспокоиться «слишком», если это не станет узким местом, преждевременная оптимизация может быть убийцей времени. – MadProgrammer
2 вопроса. 1) почему вы получаете дополнительный выходной список для возврата? 2) если вы хотите использовать использование вывода, как этот Список output = new ArrayList <> (имена); –
LowCool