Другие указали на ошибку в вашем существующем коде, но я хотел бы сделать еще два шага. Во-первых, предполагая, что вы используете Java 1.5+, вы можете добиться большей читабельности, используя расширенный цикл for :
Customer findCustomerByid(int id){
for (Customer customer : customers) {
if (customer.getId() == id) {
return customer;
}
}
return null;
}
Это также убрало микрооптимизацию возврата null
перед циклом - я сомневаюсь, что вы получите какую-то выгоду от этого, и это больше кода. Аналогичным образом я снял флаг exists
: возвращение, как только вы знаете ответ, упрощает код.
Обратите внимание, что в вашем исходном коде я думаю у вас была ошибка. Обнаружив, что клиент по индексу i
имеет верный идентификатор, вы вернули его по индексу id
- я сомневаюсь, что это действительно то, что вы хотели.
Во-вторых, если вы собираетесь проводить много поисков по идентификатору, рассматривали ли вы вопрос о включении ваших клиентов в Map<Integer, Customer>
?