Полагаю, ваш интервьюер просто не хочет, чтобы вы использовали циклы for
или while
для поиска объектов в ArrayList
, но вы можете найти их "без циклов".
Сначала, вам нужно переопределить equals
и hashCode
из Employee
класса:
@Override public boolean equals(Object obj) {
// ...
}
@Override public int hashCode() {
// ...
}
Теперь вы можете найти свой объект с помощью ArrayList.indexOf (использует equals
для поискасоответствует), создав фиктивную ссылку:
Employee target = new Employee("Nitish", 26);
int index = employees.indexOf(target);
Это довольно глупо, но я думаю, что некоторые интервьюеры хотят, чтобы мы думали нестандартно.Несмотря на то, что под капотом он использует циклы, но если мой интервьюер задает мне тот же вопрос, вместо того, чтобы сказать «нет, вы не можете», я бы использовал этот пример, потому что я хочу стараться изо всех сил, только чтобы не использовать «циклы», как было сказанои объясняет, как это работает за кулисами.Затем я бы ненадолго придумал другие лучшие решения и надеюсь, что это сработает!