Лекция 2. Типовые задачи. |
|
Содержание |
|
Лекция 2. Типовые задачи.......................................................................................................................... |
1 |
2.1. Массивы. ........................................................................................................................................... |
1 |
2.1.1. Объявление массива................................................................................................................. |
1 |
2.1.2. Создание массива...................................................................................................................... |
2 |
2.1.3. Инициализация массива........................................................................................................... |
2 |
2.1.4. Инициализатор массива........................................................................................................... |
2 |
2.1.5. Многомерные массивы. ........................................................................................................... |
2 |
2.1.6. Поля и методы класса массива................................................................................................ |
3 |
2.1.7. Класс Arrays................................................................................................................................ |
3 |
2.1.8. Вывод массивов......................................................................................................................... |
4 |
2.2. Строки................................................................................................................................................ |
4 |
2.3. Класс Math......................................................................................................................................... |
5 |
2.4. Генератор псевдослучайных чисел................................................................................................. |
6 |
2.4.1. Равномерное распределение. ................................................................................................. |
6 |
2.4.2. Стандартное нормальное распределение.............................................................................. |
6 |
2.1.Массивы.
Массив – группа однотипных переменных, обращение к которым выполняется по общему имени. Доступ к элементу массива осуществляется по его индексу. Java допускает создание массивов любого типа. Массивы в Java могут иметь одно или более измерений. Массивы в Java являются объектным типом данных.
|
|
a[0] |
|
a[1] |
|
a[2] |
|
a[3] |
|
a[4] |
|
a[5] |
|
a[6] |
|
a[7] |
a |
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 2.1. Размещение данных в массиве.
2.1.1. Объявление массива.
тип имя_переменной[];
или
тип[] имя_переменной;
Пример:
int a[]; double[] vec;
2.1.2. Создание массива.
Операция new выделяет память, создаёт массив и присваивает ссылку на него переменной массива.
имя_переменной = new тип[количество_элементов];
Количество_элементов должно быть целым и положительным. Элементы получают индексы от 0 до количество_элементов – 1.
Пример:
a = new int[12];
vec = new double[4];
2.1.3. Инициализация массива.
При создании массива всем элементам примитивных типов присваивается значание 0 (false), элементам объектных типов присваивается значение null.
имя_переменной[индекс] = значение;
Присваивает элементу с индексом индекс значение.
Пример:
a[0] = 14;
for(int i = 0; i < 4; i++) vec[i] = i*2 + 1;
2.1.4. Инициализатор массива.
Все элементы массива можно инициализировать, перечислив через запятую в фигурных скобках.
имя_переменной = {элемент1, элемент2, … , элементN}
Пример:
a = {1, 2, 3, 4};
Операции объявления, создания и инициализации можно объединить.
Пример:
int a[] = new int[10];
double vec[] = {1.0, 0.0, 2.5, -1.3}; boolean flags[] = {true, false, false};
2.1.5. Многомерные массивы.
В Java многомерные массивы представляют собой массивы массивов.
Пример:
int a[][] = new int[2][2];
double b[][] = {{1.0, 0.0}, {0.0, -1.0}};
int c[][] = new [3][]; for(int i = 0; i < 3; i++)
c[i] = new int[5];
2.1.6. Поля и методы класса массива.
•length - Содержит длину массива.
•Object clone(); - Копирует массив.
Пример:
int a[] = new int[10];
System.out.println(“Длина массива: “ + a.length); int b[] = a.clone();
2.1.7. Класс Arrays.
Класс Arrays находится в пакете java.util. Он предоставляет несколько статических методов, облегчающих работу с массивами.
Чтобы использовать класс Arrays, необходимо импортировать его из пакета java.util, импортировать весь пакет или явно задавать принадлежность к пакету при использовании.
Пример:
import java.util.Arrays;
или
import java.util.*;
или при использовании
java.util.Arrays.fill(a, 0);
Методы класса Arrays:
•Arrays.equals(<тип>[] a1, <тип>[] a2) – сравнивает 2 массива. Массивы считаются равными, если содержат одинаковое количество элементов и элементы с одинаковыми индексами равны между собой, либо, если оба массива имеют значение null.
•Arrays.sort(<тип>[] a) – сортирует массив a в порядке возрастания.
•Arrays.fill(<тип>[] a, <тип> val) – заполняет все элементы массива значением val.
Пример:
int a[] = {3, 3, 3, 3}; int b[] = new int[4]; Arrays.fill(b, 3); if(Arrays.equals(a, b))
System.out.println(“Массивы равны”);