dataType[] arrayName;
Что если необходимо хранить в памяти множество однотипных данных, например: фамилии студентов в группе.
Создадим такое же количество переменных как и студентов!
А что если появится новый студент? Переписывать программу?!
Array
Массив — это конечная последовательность упорядоченных по индексу элементов ОДНОГО типа
Доступ к каждому элементу последовательности осуществляется по индексу.
Размер (длина) массива — это общее количество элементов в массиве.
Размер массива задаётся при создании массива и не может быть изменён в дальнейшем.
dataType[] arrayName;
dataType []arrayName;
dataType arrayName[];
int[] array1; // best practice
int []array2;
int array3[];
int nums[]; // объявили
nums = new int[4]; // инициализировали (массив из 4 чисел)
// объявим и инициализируем массив из 4 чисел
int nums[] = new int[4];
// объявим и инициализируем массив из 15 чисел
int[] nums2 = new int[15];
// объявим и инициализируем массив из 4 чисел
int[] nums = new int[4];
// инициализируем 0-ой элемент массива
nums[0] = 1;
// инициализируем 1-ый элемент массива
nums[1] = 2;
// инициализируем 2-ой элемент массива
nums[2] = 4;
// инициализируем 3-ий элемент массива
nums[3] = 100;
System.out.println(nums[2]); // 4
// эти два способа равноценны
int[] nums = new int[] {1, 2, 3, 5};
int[] nums2 = {1, 2, 3, 5}; // anonymous array
System.out.println(nums.length); // длина массива 4
int[] array = new int[10];
Random rand = new Random();
for (int i = 0; i < array.length; i++) {
array[i] = rand.nextInt(10);
}
System.out.println("initial array:");
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
for (int i = 0; i < array.length; i++) {
array[i] += 10;
}
System.out.println("new array:");
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
Initialization | Content |
---|---|
|
|
|
|
|
|
|
|
|
|
int[] marks = {9, 6, 8, 10};
System.out.println(marks[4]);
System.out.println(marks[-1]);
throws ArrayIndexOutOfBoundsException
Массивы бывают:
одномерные
двумерные
n-мерные
int[][] array1;
int [][]array2;
int array3[][];
int[] nums1 = new int[] {0, 1, 2, 3, 4, 5};
int[][] nums2 = {
{0, 1, 2},
{3, 4, 5}
};
int[][] nums2 = {{0, 1, 2}, {3, 4, 5}};
// установим элемент первого столбца второй строки
nums2[1][0] = 44;
System.out.println(nums2[1][0]);
Initialization | Content |
---|---|
|
|
int[][] nums = new int[3][];
nums[0] = new int[2];
nums[1] = new int[3];
nums[2] = new int[5];
...
int[][] array = {
{1, 1, 1, 1},
{1, 1, 1, 1},
{1, 1, 1, 1}
};
int sum = 0;
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[0].length; j++) {
sum += array[i][j];
}
}
System.out.println(sum);
Сортировка выбором.
Сортировки с помощью обменов:
Пузырьковая сортировка.
Шейкерная сортировка.
Сортировка с помощью включения.
Сортировка слиянием.
Сортировка с помощью разделения.
int[] array = {8, 5, 2, 6, 9, 3, 1, 4, 0, 7};
for (int i = 0; i < array.length; i++) {
int minIndex = i;
for (int j = i + 1; j < array.length; j++) {
if (array[j] < array[minIndex]) {
minIndex = j;
}
}
int temp = array[i];
array[i] = array[minIndex];
array[minIndex] = temp;
}
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + “ ”);
}
int[] array = {5, 4, 3, 1, 2};
for (int i = array.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
if (array[j] > array[j + 1]) {
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}