java-lekcii-2016-01-17 / presentation-oct-3
.pptxМассивы
Массив – последовательный набор элементов определенного типа.
//Массивы используются для того чтобы избежать создания большого количества связанных между собой переменных
int number0; int number1; int number2;
//...
int[] numbers;
//Создание массива определенного размера (4 элемента) с указанием значений
int[] numbers = { 1, 2, 3, 4 };
//Создание массива определенного размера (4 элемента) без указания значений
int[] numbers = new int[4];
//Получение размера массива
int size = numbers.length; // size = 4
Работа с массивами
int[] numbers = { 54, 30, 22, 48 }; System.out.println(Arrays.toString(numbers)); // [54, 30, 22, 48] numbers[0] = 11;
System.out.println(Arrays.toString(numbers)); // [11, 30, 22, 48] ++numbers[0];
System.out.println(Arrays.toString(numbers)); // [12, 30, 22, 48] numbers[0] = numbers[3] + numbers[1]; System.out.println(Arrays.toString(numbers)); // [78, 30, 22, 48] // Размер созданного массива не может быть изменен
int[] newNumbers = new int[numbers.length + 1]; System.out.println(Arrays.toString(newNumbers)); // [0, 0, 0, 0, 0]
for (int i = 0; i < numbers.length; ++i) { newNumbers[i] = numbers[i];
}
System.out.println(Arrays.toString(newNumbers)); // [78, 30, 22, 48, 0]
numbers = newNumbers; System.out.println(Arrays.toString(numbers)); // [78, 30, 22, 48, 0]
Хранение массивов в памяти
Stack |
|
Heap |
|||
int[] |
|
|
|
|
|
78 |
30 |
22 |
48 |
||
numbers; |
|||||
int[] newNumbers; |
|
|
|
|
|
|
|
|
|
numbers = newNumbers;
numbers; |
78 |
30 |
22 |
48 |
0 |
newNumbers;
Примерint[] arr1 = { 1, 2, 3, 4, 5 }; int[] arr2 = { 6, 7, 8, 9, 0 };
System.out.println(Arrays.toString(arr1)); // [1, 2, 3, 4, 5]
System.out.println(Arrays.toString(arr2)); // [6, 7, 8, 9, 0]
arr2 = arr1;
System.out.println(Arrays.toString(arr1)); // [1, 2, 3, 4, 5]
System.out.println(Arrays.toString(arr2)); // [1, 2, 3, 4, 5]
arr1[0] = 15;
System.out.println(Arrays.toString(arr1)); // [15, 2, 3, 4, 5]
System.out.println(Arrays.toString(arr2)); // [15, 2, 3, 4, 5]
Упражнения
•Выяснить, является ли цифра 6 первым или последним элементом массива целых чисел
•Отсортировать элементы массива целых чисел произвольной длины в обратном порядке (из {1, 8, 5, 3} сделать {3, 5, 8, 1})
•Выяснить, содержит ли массив целых чисел определенное число
•Вывести количество четных чисел в массиве
•Сдвинуть элементы массива влево на 1 позицию (из {1, 8, 5, 3} сделать {8, 5, 3, 1})
•Вывести true, если в массиве целых чисел из каждых двух соседних элементов хотя бы один равен N, и false в противном случае.
•Вывести true, если массив содержит три соседних целых числа, например, 3, 4, 5 или 6, 7, 8
({1, 2, 3, 7} – true; {3, 1, 2, 7} – true; {2, 7, 1, 3} – true; {1, 2, 4} – false)
•Пусть span (промежуток) – количество элементов между первым и последним элементами массива, равными указанному числу (в массиве {1, 2, 3, 2} span числа 2 равен 1). Если число встречается только один раз, его span = 1. Имея массив целых чисел, найти число, span которого является самым большим.