Массивы

При разработке программ нам часто приходится работать с множествами.
Множество товаров интернет магазина, множество пользователей системы, множество сообщений в чате и так далее.

Пришло время рассмотреть одну из интереснейших структур данных в программировании - массивы.

Для устранения путаницы в терминах, на данном этапе обучения примем, что у понятия массив есть следующие синонимы:

  • Множество
  • Список
  • Матрица
  • Вектор
  • Пространство
  • Коллекция
  • Набор

В реальности же, некоторые из этих терминов имеют другой смысл, но сейчас будем думать, что это одно и то же.

  - эй, как ты смеешь называть коллекцию массивом, это же вообще друге понятие в java...
  -- ну если внимательно посмотреть как конструируется коллекция в java, то станет ясно, 
что коллекция под капотом, это всё тот же массив)))
...

Массивы в java позволяют хранить и обрабатывать множества данных одного типа.


Объявление и инициализация массива

Массив в Java объявляется с указанием типа элементов

Пример:

public class Main { public static void main(String[] args) { int[] numbers; // Объявление массива целых чисел String[] names; // Объявление массива строк } }

Массив можно инициализировать сразу при объявлении или позже с использованием ключевого слова new.

Пример:

public class Main { public static void main(String[] args) { int[] numbers = {1, 2, 3, 4, 5}; // Инициализация массива целых чисел при объявлении String[] names = new String[3]; // Создание массива строк из трех элементов names[0] = "Alice"; names[1] = "Bob"; names[2] = "Charlie"; } }

Доступ к элементам массива

Элементы массива нумеруются с нуля. Для доступа к элементам используется индекс.

Пример:

public class Main { public static void main(String[] args) { int[] numbers = {10, 20, 30, 40, 50}; // Получение значения третьего элемента массива (с индексом 2) int x = numbers[2]; System.out.println(x); } }

Если обратиться к несуществующему элементу массива, то будет ошибка.

Пример:

public class Main { public static void main(String[] args) { String[] cars = {"bmw", "audi"}; System.out.println(cars[0]); // "bmw" System.out.println(cars[1]); // "audi" System.out.println(cars[2]); // ОШИБКА! } }

Длина массива

Длину массива можно получить с помощью свойства length.

Пример:

public class Main { public static void main(String[] args) { int[] numbers = {1, 2, 3, 4, 5}; int length = numbers.length; // Получение длины массива System.out.println(length); // 5 } }

Перебор элементов массива

Итак, мы узнали что такое массивы, как обращаться к их элементам и получать длину массива. А как быть если в массиве будет сотня элементов, или если мы вообще не будем знать сколько элементов в массиве?

Мы конечно можем сто раз написать arr[0], arr[1], arr[2], и так далее, но ранее мы познакомились с таким понятием как циклы. Почему бы не воспользоваться нашими знаниями.

Пример:

public class Main { public static void main(String[] args) { String[] cars = {"bmw", "audi", "kia"}; for(int i = 0; i < cars.length; i++){ System.out.println(cars[i]); } } }

Значение переменной i в цикле меняется от 0 до 2, получается мы последовательно обращаемся к каждому элементу массива.

Для перебора элементов массива мы можем воспользоваться ещё одним вариантом написания цикла for, без счётчика.

Пример:

public class Main { public static void main(String[] args) { String[] cars = {"bmw", "audi", "kia"}; for (String car : cars) { System.out.println(car); } } }

В данном примере, цикл по очереди помещает значения из массива cars в переменную car.


Многомерные массивы

Массивы могут содержать элементы, которые тоже являются массивами. Это можно использовать для создания многомерных массивов, например, для хранения матриц:

public class Main { public static void main(String[] args) { int[][] matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; System.out.println(matrix[1][1]); // 5, центральный элемент } }

- Как добавлять новые элементы в массив?
-- Никак, массивы в java неизменяемы, если нужно добавить элементы в массив, то придётся создать новый массив больший по размеру и положить в него элементы из старого массива и добавить новые.
- Это отвратительно и не удобно, вот в JavaScript, Python и PHP удобнее!!!
-- Несомненно удобнее, и за это удобство мы платим бОльшим потреблением оперативной памяти и потерей производительности.
-- На самом деле в Java есть возможность создавать динамически расширяемые массивы, это называется коллекции, но об этом в другой раз.


Мы рассмотрели основные концепции массивов в языке программирования Java, включая создание, инициализацию, доступ к элементам, определение длины и перебор элементов массива. Понимание работы с массивами позволяет эффективно хранить и обрабатывать данные в программах.

На сайте есть интересные задачи на работу с массивами, практикуйтесь!


Комментарии

Добавить комментарий

Чтобы оставить комменатрий необходимо Авторизоваться