Вопрос

Если у меня есть LinkedList объектов Employee ...

У каждого сотрудника есть имя и поля идентификатора.

У меня есть список вызовов linkList ....

Если я хочу узнать, содержит ли в списке сотрудник, которого я делаю:

list.contains(someEmployeeObject)

Как насчет того, чтобы узнать, содержит ли список сотрудника на основе идентификатора сотрудника?

допустим, у меня есть следующий метод:

public boolean containsEmployeeByID(int id)

Как узнать, содержит ли список объект сотрудника с идентификатором параметра?

Это было полезно?

Решение

Просто пройдитесь по списку и ищите совпадения. Если вы делаете это часто и изменяете список нечасто, сначала создайте индекс карты.

List<Employee> list = ...
for (Employee e : list)
   if (e.getID() == id)
      return true;
return false;

Тем не менее, сохранение сотрудников в LinkedList ?? Что за странный пример проблемы ...

Другие советы

Может быть, вам следует использовать карту, ключом которой является идентификатор, а значением - имя сотрудника или объект сотрудника?

Вы можете переопределить метод equals () для сравнения на основе идентификатора, однако, как правило, это не лучшая практика.

Другой вариант - создать HashMap, а затем вы сможете получить своих сотрудников по их идентификатору.

for (Employee empl : list) {
    map.put(empl.getId(), empl);
}

String idLookup = "1234";

Employee employee = map.get(idLookup);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top