Перебор массива в поисках элемента
На этом этапе вы научитесь проверять, существует ли определенный элемент в массиве Java, перебирая его с помощью традиционного цикла for
. Это фундаментальный метод поиска в коллекциях данных.
Сначала создадим новый Java-файл с именем ArraySearch.java
в каталоге ~/project
. Вы можете сделать это с помощью проводника файлов WebIDE слева или выполнив следующую команду в терминале:
touch ~/project/ArraySearch.java
Теперь откройте файл ArraySearch.java
в редакторе WebIDE и добавьте следующий Java-код:
public class ArraySearch {
public static void main(String[] args) {
// Define an array of strings
String[] fruits = {"Apple", "Banana", "Cherry", "Date", "Elderberry"};
// The element we want to search for
String searchElement = "Cherry";
// Variable to keep track if the element is found
boolean found = false;
// Loop through the array
for (int i = 0; i < fruits.length; i++) {
// Check if the current element is equal to the search element
if (fruits[i].equals(searchElement)) {
found = true; // Element found
break; // Exit the loop since we found the element
}
}
// Print the result
if (found) {
System.out.println(searchElement + " was found in the array.");
} else {
System.out.println(searchElement + " was not found in the array.");
}
}
}
Разберем этот код:
String[] fruits = {"Apple", "Banana", "Cherry", "Date", "Elderberry"};
: Эта строка объявляет и инициализирует строковый массив с именем fruits
, содержащий несколько названий фруктов.
String searchElement = "Cherry";
: Эта строка объявляет строковую переменную searchElement
и присваивает ей значение "Cherry". Это элемент, который мы ищем в массиве.
boolean found = false;
: Эта строка объявляет булеву переменную found
и инициализирует ее значением false
. Мы установим ее в true
, если найдем searchElement
в массиве.
for (int i = 0; i < fruits.length; i++)
: Это стандартный цикл for
, который перебирает элементы массива. i
начинается с 0 и увеличивается до (но не включая) длины массива fruits
.
if (fruits[i].equals(searchElement))
: Внутри цикла это условие if
проверяет, равен ли текущий элемент массива (fruits[i]
) searchElement
. В Java для сравнения строк используется метод .equals()
, а не оператор ==
.
found = true;
: Если элементы равны, мы устанавливаем переменную found
в true
.
break;
: Как только элемент найден, мы используем оператор break
для выхода из цикла досрочно, так как нет необходимости продолжать поиск.
- Последний блок
if/else
выводит сообщение, указывающее, был ли найден searchElement
, в зависимости от значения переменной found
.
Сохраните файл ArraySearch.java
(Ctrl+S или Cmd+S).
Теперь скомпилируем и запустим программу в терминале. Убедитесь, что вы находитесь в каталоге ~/project
.
Скомпилируйте код:
javac ArraySearch.java
Если нет ошибок, будет создан файл ArraySearch.class
.
Запустите скомпилированный код:
java ArraySearch
Вы должны увидеть следующий вывод:
Cherry was found in the array.
Теперь попробуйте изменить searchElement
на что-то, чего нет в массиве, например "Grape"
, сохраните файл, перекомпилируйте и запустите программу снова, чтобы увидеть другой вывод.