У меня есть класс филиала, в котором есть массив объектов клиентов.В классе филиала я хочу addTransaction
для данного имени клиента, но сначала я хочу проверить, существует ли клиент, а затем добавить транзакцию.
private boolean customerExists(String customerName) {
for (int i = 0; i < customers.size(); i++) {
if(customers.get(i).getCustomerName().equalsIgnoreCase(customerName)) {
return true;
}
}
return false;
}
private int customerPosition(String customerName) {
for (int i = 0; i < customers.size(); i++) {
if(customers.get(i).getCustomerName().equalsIgnoreCase(customerName)) {
return i;
}
}
return -1;
}
public void addTransaction(String customerName, Double transactionValue) {
if(customerExists(customerName) == false) {
System.out.println("Customer with name " + customerName + " not found");
} else {
customers.get(customerPosition(customerName)).addTransaction(transactionValue);
}
}
Я знаю, что этот код будет работать, однако я уверен, что мне нужно сделать 2 цикла по массиву, чтобы проверить его существование и получить его позицию.Что кажется неэффективным
Я знаю, что метод indexOf
был бы полезен в addTransaction
, но я не уверен, как его использовать, если я ищу конкретное значение внутри объекта, а не объектасам, то есть я не ищу объект Customer, я ищу значение внутри объекта.Буду признателен за любой совет.
Редактировать: Спасибо всем, эти ответы фантастические.