Массивы в Java
Массивы — одна из важных структур данных для каждого языка программирования. Конечно, в разных языках разные реализации и обработка массивов.
Массивы, предоставляемые в языке Java, используются для хранения фиксированного количества элементов одного типа.
Вы можете объявить переменную массива, например numbers
В этом руководстве будут представлены объявление, создание и инициализация массивов Java, а также приведён соответствующий код.
Объявление переменных массива
Сначала необходимо объявить переменную массива, прежде чем использовать массив в программе. Ниже приведён синтаксис объявления переменной массива:
Примечание:Рекомендуется использоватьdataType[] arrayRefVarстиль объявления для объявления переменных массива. Стиль dataType arrayRefVar[] происходит из языка C/C++. Он принят в Java, чтобы программисты C/C++ могли быстро понять язык Java.
Пример
Ниже приведены примеры кода для этих двух синтаксисов:
Создание массива
В языке Java для создания массивов используется оператор new. Синтаксис следующий:
arrayRefVar = new dataType[arraySize];
Приведённая выше синтаксическая конструкция выполняет две вещи:
- Во-первых, она создаёт массив с помощью dataType[arraySize].
- Во-вторых, она присваивает ссылку на только что созданный массив переменной arrayRefVar.
Объявление переменной массива и создание массива можно выполнить в одном операторе, как показано ниже:
dataType[] arrayRefVar = new dataType[arraySize];
Кроме того, массив можно также создать следующим образом.
dataType[] arrayRefVar = {value0, value1, ..., valuek};
Доступ к элементам массива осуществляется по индексу. Индексы массива начинаются с 0, поэтому значения индексов находятся в диапазоне от 0 до arrayRefVar.length-1.
Пример
Следующий оператор сначала объявляет переменную массива myList, затем создаёт массив, содержащий 10 элементов типа double, и присваивает его ссылку переменной myList.
Код файла TestArray.java:
Вывод приведенного выше примера:
总和为: 11367.373
На следующем рисунке изображён массив myList. Здесь массив myList содержит 10 элементов типа double, а его индексы находятся в диапазоне от 0 до 9.

Обработка массивов
Тип элементов и размер массива фиксированы, поэтому при обработке элементов массива мы обычно используем базовый цикл или цикл For-Each.
Пример
Этот пример полностью демонстрирует, как создавать, инициализировать и обрабатывать массивы:
Код файла TestArray.java:
Результат компиляции и выполнения приведенного выше примера выглядит следующим образом:
1.9 2.9 3.4 3.5 Total is 11.7 Max is 3.5
Цикл For-Each
В JDK 1.5 появился новый тип цикла, называемый циклом For-Each или расширенным циклом, который позволяет обходить массивы без использования индексов.
Формат синтаксиса следующий:
for(type element: array)
{
System.out.println(element);
}
Пример
Этот пример используется для отображения всех элементов массива myList:
Код файла TestArray.java:
Результат компиляции и выполнения приведенного выше примера выглядит следующим образом:
1.9 2.9 3.4 3.5
Массивы как параметры функций
Массивы можно передавать в методы в качестве параметров.
Например, следующий пример — это метод, который выводит элементы массива int:
В следующем примере вызывается метод printArray для вывода 3, 1, 2, 6, 4 и 2:
Массивы как возвращаемые значения функций
В приведенном выше примере массив result используется как возвращаемое значение функции.
Многомерные массивы
Многомерные массивы можно рассматривать как массивы массивов. Например, двумерный массив — это особый одномерный массив, где каждый элемент является одномерным массивом, например:
Динамическая инициализация многомерных массивов (на примере двумерного массива)
1. Прямое выделение памяти для каждого измерения, формат следующий:
type может быть базовым типом данных или составным типом данных. typeLength1 и typeLength2 должны быть положительными целыми числами. typeLength1 — это количество строк, а typeLength2 — количество столбцов.
Например:
Анализ:
Двумерный массив a можно рассматривать как массив с двумя строками и тремя столбцами.
2. Начиная с самой старшей размерности, выделите память для каждой размерности отдельно, например:
Анализ:
s[0]=new String[2]иs[1]=new String[3]Это выделяет пространство для ссылок для самой старшей размерности, то есть ограничивает максимальную длину данных, которые может хранить самая старшая размерность, а затем отдельно выделяет пространство для каждого из его элементов массива.s0=new String("Good")и другие операции.
Обращение к многомерным массивам (на примере двумерного массива)
Для каждого элемента в двумерном массиве способ обращения —arrayName[index1][index2], например:
Класс Arrays
Класс java.util.Arrays позволяет удобно работать с массивами. Все предоставляемые им методы являются статическими.
У него есть следующие функции:
- Присваивание значений массиву: с помощью метода fill.
- Сортировка массива: с помощью метода sort, в порядке возрастания.
- Сравнение массивов: используйте метод equals, чтобы сравнить, равны ли значения элементов в массивах.
- Поиск элементов массива: метод binarySearch может выполнять бинарный поиск в отсортированном массиве.
Подробные инструкции см. в следующей таблице:
| Нет. | Метод и описание |
|---|---|
| 1 |
public static int binarySearch(Object[] a, Object key) Ищет объект с заданным значением в заданном массиве с помощью алгоритма бинарного поиска (Byte, Int, double и т. д.). Перед вызовом массив должен быть отсортирован. Если искомое значение содержится в массиве, возвращается индекс ключа поиска; в противном случае возвращается (-(точка вставки) - 1). |
| 2 |
public static boolean equals(long[] a, long[] a2) Если два указанных массива типа longравны, возвращается true. Если два массива содержат одинаковое количество элементов и все соответствующие пары элементов в двух массивах равны, то два массива считаются равными. Другими словами, если два массива содержат одинаковые элементы в одинаковом порядке, то два массива равны. Тот же метод применяется ко всем другим базовым типам данных (Byte, short, Int и т.д.). |
| 3 |
public static void fill(int[] a, int val) Присваивает указанное значение int каждому элементу в указанном диапазоне указанного массива int. Тот же метод применяется ко всем другим базовым типам данных (Byte, short, Int и т.д.). |
| 4 |
public static void sort(Object[] a) Сортирует указанный массив объектов в порядке возрастания в соответствии с естественным порядком его элементов. Тот же метод применяется ко всем другим базовым типам данных (Byte, short, Int и т.д.). |
Другие расширенияУпражнения
Тест по Java Arrays