Слайд 1
Мультимедийный курс
Программирование на Java
Часть1
Лекция 3.2
МАССИВЫ В JAVA
Одномерные массивы
Многомерные массивы
Массивы-параметры
Анонимные массивы
Слайд 2Ссылочные типы данных
Ссылочные типы :
массивы, строки, классы
При
работе со ссылочными типами :
операторы "=" и "==" присваивают
и сравнивают ссылки, а не значения
значение простого типа не может быть преобразовано к ссылочному типу и, наоборот
null - специальное значение (константа),
представляющее пустую ссылку
Слайд 3Одномерные массивы
Чтобы воспользоваться массивом, необходимо:
объявить переменную массива
[];
или
[]
;
выделить память под массив
= new [];
Можно
совмещать объявление с выделением памяти:
<тип>[] <имя> = new <тип> [<число_элем.>];
Слайд 4Одномерные массивы
Примеры объявления и размещения массивов
float[] f;
f =
new float[300];
byte[] buffer = new byte[1024];
byte buffer[] = new byte[1024];
Слайд 5Одномерные массивы
Инициализация - осуществляется после размещения массива в памяти
по
умолчанию
при помощи списка инициализации
(в этом случае операция new
не используется)
float m1[]={23.2f,3,45};
Нумерация элементов массива начинается с 0
Слайд 6Одномерные массивы
Возможности
Количество элементов массива не может быть изменено
Переменной можно присвоить
ссылку на другой массив того же типа
float m1[]={23.2f,3,45};
float mas_c[]={333,444,555,666};
…
m1=mas_c
Слайд 7Одномерные массивы
Возможности
Размер массива хранится в поле length класса массива, (только
для чтения)
for( int i = 0; i < m.length; i++)
m[i] = i;
При нарушении границ массива формируется исключение ArrayIndexOutOfBoundsException
Слайд 8Многомерные массивы
Многомерный массив – это массив массивов.
Его элемент -
ссылка на массив на размерность меньше
arr[2] [3] [2]
17 , 896
-43
, 55
21 , 162
56 , 411
293 , -7
91 , 8
0
1
0
1
2
0
1
2
0
1
0
1
0
1
0
1
0
1
0
1
1-е измерение
2-е изм.
3-е изм.
Слайд 9Многомерные массивы
Объявление и выделение памяти
byte
m2[ ][ ] = new byte [256][16];
Поэтапное задание размерностей, начиная
с левой
byte m3[ ][ ][ ] = new byte [2][ ][ ];
…
m3[0] = new byte [3][ ];
m3[1] = new byte [5][2];
Для подмассивов одного уровня можно задавать разные размерности
m3[0][0] = new byte [1];
m3[0][1] = new byte [3];
Это позволяет организовывать "непрямоугольные”
массивы
Слайд 10Многомерные массивы
Явная инициализация: при помощи вложенных списков инициализации
byte m3[ ][
][ ] = {{{17, -2}, {6, 9}, {63,90}}, {{33, 46},
{-24, 55}, {111,123}}}; // размерность [2][3][2];
Объявление, размещение и инициализация «треугольного» массива
int m[ ][ ] = {{1}, {2,3}, {4,5,6}};
Слайд 11Массивы–параметры
Массивы могут быть параметрами и возвращаемыми
значениями методов
static int[ ] inversion (int[ ] a)
{
int
len = a.length;
int[] b = new int[ len ];
for (int i = 0; i < len; i++)
// Инвертирование порядка элементов
b[i] = a[ len - i - 1];
return b;
}
Слайд 12Анонимные массивы
Анонимные массивы – массивы без имени
Аргументы при вызове методов:
int[ ] x = inversion(new int[ ] {1,2,3,4,5});