Найти метод ArrayList для поиска метода Array

1

Я сделал метод, который находит значение в моем ArrayList. Я также скопировал этот метод, чтобы использовать его для своего массива, но некоторые вещи, такие как get и size, не работают. Я не знаю, как я должен реструктурировать его.

public Product findProduct(String givenProduct) throws IllegalProductCodeException {
            IllegalProductCodeException notFoundMessage
                    = new IllegalProductCodeException("Product was not found");
            int size = rangeOfProducts.length;
            int i = 0;
            boolean productFound = false;
            while (!productFound && i < size) {         //While book hasn't been found and i is less than the size of the array
                productFound = rangeOfProducts.get(i).getProductCode().equals(givenProduct);
                //Checks whether the given value in the array reference is equal to the given reference entered
                i++; //if not then add 1
            }
            if (productFound) {
                return rangeOfProducts.get(i - 1);
            } else {
                throw notFoundMessage;
            }

        }
Теги:
arrays
arraylist

2 ответа

3
Лучший ответ

Массив, альтернативный .get(i) будет [i] а альтернатива .size() будет .length.

1
for (Product product : products) {
  if (product.getProductCode().equals(givenProduct)) {
    return product;
  }
}
throw new IllegalProductCodeException("Product was not found");

Изменить: Java 5, усиленный для цикла, эквивалентен

for (Iterator<Product> iter=products.iterator(); iter.hasNext(); ) {
  Product product = iter.next();
  • 0
    Можете ли вы говорить мне через свой ответ, пожалуйста? Это выглядит очень эффективно, но не совсем понимаю
  • 1
    @ user3667111: Это структура цикла foreach, представленная в Java 5, которая будет автоматически выполнять цикл по всему массиву (или коллекции, или всему, что реализует Iterable). Если вы никогда не использовали его раньше, ты будешь любить его. Больше информации на blogs.oracle.com/CoreJavaTechTips/entry/… . Если одна из итераций в цикле находит соответствующий элемент, она возвращает его (таким образом, немедленно выходя из цикла). Если он достигает конца списка (это означает, что он не нашел соответствия), он выдает исключение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню