Массивы в Java — введение в Java 018 #
Давайте представим себе книжную полку на которой стоит множество книг. Или камеру хранения на вокзале со множеством ячеек. У каждой ячейки есть номер и в каждой из них может находиться чемодан.
В Java тоже есть похожие “книжные полки” или “камеры хранения”. Называются они массивами и в массиве мы можем хранить множество переменных одного типа. То есть на книжной полке с книгами не может стоять любимая ваза. Только книги. Если вазы так нужны, то мы можем выделить для всех ваз отдельную полку.
Java - это строго типизированный язык программирования. И именно здесь она проявляет строгость. Данные одного типа можно хранить только с данными этого же типа.
Массив определение в Java #
Массив — это однородная (пронумерованная) структура данных, в которой хранится конечное число элементов.
Один элемент - одна ячейка.
Объявление массива #
Пример объявления(декларации) dataType[] arrayName;
int[] myArray;
String[] user;
double[] gpsPoints;
boolean[] truthTable;
char[] cyrillicAlphabet;
Срабатывает и такой синтаксис объявления массива dataType arrayName[];:
int myArray[];
String user[];
double gpsPoints[];
boolean truthTable[];
char cyrillicAlphabet[];
Этот синтаксис наследован от языка C, который является родным папой Явы. Его можно встретить, это не является ошибкой. Но рекомендуется использовать первый вариант.
Инициализация происходит с помощью знакомого нам по Scanner оператора new, массивы также можно объявлять и инициализировать одновременно:
<<ИмяУжеОбъявленнойПеременной>> = new <<типДанных>> <<ДлинаМассива>>
int[] field;
field = new int[10]; //в массиве 10 ячеек.
String[] fourSeasons = new String[] {"Vivaldi", "Tchaikovsky", "Astor Piazzolla", "Stephen Edwin King"};
int[] numberFibonacci = new int[] {0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144}
String[] germanCity = new String[] {"Berlin", "München", "Dresden","Hamburg","Köln","Potsdam"}
То есть мы можем задать пустой массив определённого размера или заполненный массив, где длина массива очевидна. Инициализированный массив не может быть неопределённого размера.
Давайте на последнем примере посчитаем элементы в массиве и общее количество знаков, к примеру.
public static void germanCity() {
String[] germanCity = new String[]{"Berlin", "München", "Dresden", "Hamburg", "Köln", "Potsdam"};
int allGermanCity = germanCity.length;
int allLetter = 0;
for (int i = 0; i < allGermanCity - 1; i++) {
allLetter = allLetter + germanCity[i].length();
}
System.out.println("allGermanCity: " + allGermanCity);
System.out.println("allLetter: " + allLetter);
}
Дополнительные материалы #
Полезно и обязательно стоит почитать:
- Официальный сайт - https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html
- Русскоязычная адоптация - https://javarush.ru/groups/posts/massivy-java
- https://www.baeldung.com/java-arrays-guide
Домашнее задание #
Постарайтесь не гуглить чужие решения. Все нужные знания у вас есть. Гуглите методы, которые вам могут понадобиться:
- Заполните массив случайным числами и выведете максимальное, минимальное и среднее значение. Для генерации случайного числа используйте метод Math.random(), который возвращает значение в промежутке [0, 1].
- Напишите программу, которая выводит на консоль простые числа в промежутке от [2, 100]. Используйте для решения этой задачи оператор “%” (остаток от деления) и циклы.