У меня есть список массивов ArrayList, который хранит объекты, которые хранят детали некоторых врачей. Каждый врач имеет уникальное поле идентификатора. Есть ли способ поиска по списку массивов для врача с определенным значением идентификатора?Поиск через ArrayList для поиска объекта с определенным значением поля
ответ
Попробуйте что-нибудь подобное.
private static Doctor queryDoctorById(List<Doctor> doctors, int id) {
Doctor doctor = null;
for (Doctor doc : doctors) {
if (doc.id == id) {
doctor = doc;
break;
}
}
return doctor;
}
// is a sample object representing doctor
protected static class Doctor {
public String name;
public int id;
}
Я думаю, что буду использовать это, поскольку я понимаю, как это работает. Спасибо, парни. –
ok но пожалуйста. не забудьте закрыть этот вопрос, если вы удовлетворены ответом – Olu
Простейшее, но, вероятно, не самое эффективное решение, я предполагаю, что вы создали «врачей» с сеттеры/добытчиками для всех полей, в противном случае вы бы использовать d.id вместо d.getId() но это не очень хорошая практика:
Я также предполагаю, что идентификатор может содержать буквы и цифры и представлен в виде строки. Если это число, вы бы использовать == вместо .equals
public Doctor findDoctorById(desiredID) {
for(Doctor d : doctors) {
if (d.getId().equals(desiredID) {
return d;
}
}
System.out.println("No doctors with that ID!");
return null;
}
Да, я использовал геттеры и сеттеры с частными значениями полей, поэтому я бы использовал d.getId(). Мои значения id являются int, поэтому я должен использовать == вместо «.equals» в правиле if корректно? –
Да, это правильно. «==» - это точное равенство, например численное равенство, тогда как .equals - для сравнения двух строк. – mstorkson
Вы можете просто использовать потоки на ArrayList, как так:
Optional<Doctor> getUniqueDoctorById(List<Doctor> list, String id) {
return list.stream()
.filter(doctor -> doctor.getId().equals(id))
.findFirst();
}
Здесь вы видите потоковом список и фильтрации всех врачей где идентификатор врача равен идентификатору, который вы ищете.
- 1. Поиск объекта с определенным значением
- 2. Javascript Поиск Массив для объекта с определенным значением
- 3. Поиск объекта javascript для свойства с определенным значением?
- 4. поиска строки с определенным значением
- 5. Удалить элементы из ArrayList с определенным значением
- 6. Поиск объекта arraylist confusion
- 7. Поиск объекта в ArrayList
- 8. Поиск номера столбца ячейки с определенным значением
- 9. Поиск через объект ArrayList
- 10. Logstash - добавление определенного поля с определенным значением
- 11. Рельсы отображают данные с определенным значением поля
- 12. Поиск объекта из ArrayList
- 13. Поиск через arraylist ?? Java
- 14. Селектор для поиска первого списка выбора с определенным значением
- 15. Поиск индекса массива для количества событий над определенным значением
- 16. Automapper - как создать карту для этого объекта с определенным значением?
- 17. Как вернуть все строки базы данных с определенным значением поля
- 18. Итерация через поля с определенным атрибутом
- 19. Как сортировать коллекцию в соответствии с определенным значением поля POJO?
- 20. Поиск объекта в ArrayList через пользовательский ввод - Java
- 21. Несколько строк текстового поля с определенным значением С Ajax
- 22. Java - рекурсивный двоичный поиск через Arraylist
- 23. Java - Поиск HashSet для поля объекта
- 24. Улучшить результаты поля поиска «поиск»?
- 25. Поиск по размеру тип объекта поля упругого поиска
- 26. Изменить arraylist через текстовые поля
- 27. PostgreSQL - поиск самой старой записи с определенным значением
- 28. поиск arraylist по свойствам с помощью binarysearch
- 29. VB.NET XML Parser - Поиск элементов с определенным атрибутом и значением
- 30. Excel-VBA: поиск ячейки с определенным значением времени
Не могли бы вы разместить код, в котором вы создадите arraylist? Возможно, эти данные были бы лучше структурированы как словарь? – Stephopolis
Похоже, вам было бы лучше хранить данные в «Map», который будет отображать идентификаторы врача в соответствующие объекты-врачи. Поиск станет элегантным и эффективным. –