Массивы и Коллекции
Вопросы
Массивы
Создание массива элементов примитивного типа
Объявление массива
Создание объекта массива
Инициализация элементов массива
Создание массива элементов ссылочного типа
Инициализация элементов массива ссылочного типа
Использование массива ссылочного типа
Массивы и исключения
Многомерные массивы
Передача параметров в метод main()
Векторы
Изменение вектора
Доступ к элементам вектора
Коллекции Java
Коллекции Java
ArrayList и Hashtable
Интерфейс Iterator
Преимущества J2SE 5.0
Итоги
892.50K
Category: programmingprogramming

Массивы и коллекции

1. Массивы и Коллекции

2. Вопросы

Создание массивов примитивных типов и коллекций
Обработка входных параметров программы
Работа с векторами
Другие коллекции Java: Enumerators, Iterators,
ArrayLists и Hashtables
Process command-line and system properties

3. Массивы

Массив – коллекция переменных одинакового типа.
Каждый элемент содержит единственное значение.
Элементы массива могут быть как примитивного так и
ссылочного типа.
Длина массива задается при его создании.
[0]
[1]
[2]
[3]
1
2
4
8
[0]
Action
[1]
Comedy
[2]
Drama

4. Создание массива элементов примитивного типа

1. Объявите массив.
Null
arrayName
type[] arrayName;
… or …
type arrayName[];
словом type обозначен
идентификатор примитивного
типа, например integer.
2. Создайте объект массива.
// Create array object syntax
arrayName = new type[size];
arrayName
0
0
0
arrayName
3. Инициализируйте элементы массива
(необязательно).
1
2
4

5. Объявление массива

Создайте переменную для хранения ссылки на
объект массива:
int[] powers;
// Example
После объявления переменной массива:
Она инициализируется значением NULL
powers
null

6. Создание объекта массива

Создайте массива заданной длины и присвойте ссылку на
него соответствующей переменной:
int[] powers;
powers = new int[4];
// Declare array variable
//Create array object
Для создания объекта массива используйте оператор new.
Содержимое массива элементов примитивного типа
инициализируется автоматически значениями по
умолчанию.
powers
0
0
0
0

7. Инициализация элементов массива

Присвойте значения элементам массива по отдельности:
arrayName[index] = value;
powers[0] = 1;
powers
Создайте и инициализируйте массив в
одном действии:
type[] arrayName = {valueList};
int[] primes = {2, 3, 5, 7};
[0]
0 [1]
0 [2]
0 [3]
1
[0]
3 [1]
5 [2]
7 [3]
2
primes

8. Создание массива элементов ссылочного типа

arrVar
1. Объявите массив.
ClassName[] arrVar;
… or …
null
arrVar
ClassName arrVar[];
null
null
null
2. Создайте объект массива.
arrVar
// Create array object syntax
Action
arrVar = new ClassName[size];
Comedy
3.Инициализируйте элементы массива.
Drama

9. Инициализация элементов массива ссылочного типа

Присвойте значения каждому элементу массива по
отдельности:
// Create an array of four empty Strings
String[] arr = new String[4];
for (int i = 0; i < arr.length; i++) {
arr[i] = new String();
}
Создайте и инициализируйте массив одновременно:
String[] categories =
{"Action", "Comedy", "Drama"};

10. Использование массива ссылочного типа

Каждый элемент может быть инициализирован ссылкой на
объект соответствующего типа:
String category = categories[0];
Каждый элемент может обрабатываться как отдельный
объект:
System.out.println
("Length is " + categories[2].length());
Элементы массива передаются по ссылкам при
использовании в качестве фактических параметров
методов.

11. Массивы и исключения

При попытке использовать неверный
индекс элемента возникает исключение
ArrayIndexOutOfBoundsException :
String[] list = new String[4];
//The following throws ArrayIndexOutOfBoundsException
System.out.println(list[4]);
При попытке использовать не
инициализированный элемент массива
возникает исключение
NullPointerException :
Movie[] movieList = new Movie[3];
// The following will throw NullPointerException
String director = movieList[0].getDirector();

12. Многомерные массивы

type[][] arrayname = new type[n1][n2];
int[][] mdarr = new int[4][2];
mdarr[0][0] = 1;
mdarr[0][1] = 7;
mdarr
[0][0]
[0][1]
1
7
[1]
0
0
[2]
0
0
[3]
0
0
[0]

13. Передача параметров в метод main()

Метод main()принимает единственный аргумент:
args.
args – массив типа Strings, содержащий
параметры, переданные из командной строки:
C:\> java SayHello Hello World
public class SayHello {
public static void main(String[] args) {
if (args.length != 2)
System.out.println("Specify 2 arguments");
else
System.out.println(args[0]+" "+args[1]);
} …

14. Векторы

Класс Vector представляет собой динамическую
коллекцию объектов произвольного типа.
Создание пустого вектора:
Vector members = new Vector();
Создание вектора с предопределенным начальным
размером:
// Create a vector with 10 elements. The vector //
can be expanded later.
Vector members = new Vector(10);

15. Изменение вектора

Добавление элемента в конец:
String name = MyMovie.getNextName();
members.addElement(name);
Добавление элемента в заданную позицию:
// Insert a string at the beginning
members.insertElementAt(name, 0);
Удаление элемента по индексу:
// Remove the first element
members.removeElementAt(0);

16. Доступ к элементам вектора

Получение первого элемента:
String s = (String)members.firstElement();
Получение элемента по индексу:
String s = (String)members.elementAt(2);
Поиск индекса элемента коллекции:
int position = members.indexOf(name);
Получение размера коллекции:
int size = members.size();

17. Коллекции Java

Java Collections Framework – API, позволяющие
управлять группами объектов независимо от их
внутренней реализации:
Расположены в пакетеjava.util
Состоят из шести основных интерфейсов и
некоторых классов, которые их реализуют:
Collection
Set
List
Map
SortedSet и SortedMap

18. Коллекции Java

19. ArrayList и Hashtable

Класс ArrayList:
Реализация интерфейса List
Представляет динамическую коллекцию
Класс Hashtable:
Используются для хранения пар ключ - значение
Часто в качестве ключа применяется переменная
типа String, а в качестве значения –
некоторый объект

20. Интерфейс Iterator

Интерфейс Iterator может применяться для
организации «прохода» по коллекции:
Реализует стандартный подход к обработке
элементов коллекции, принятый в ООП
Заменяет интерфейс java.util.Enumeration
Включает методы:
hasNext().
next().
remove().

21. Преимущества J2SE 5.0

Задание типа:
Позволяет создавать коллекции определенных типов
Позволяет выявлять ошибки на этапе компиляции
Улучшенный синтаксис for
Упрощает процесс «перебора» элементов коллекции
Устраняет необходимость использования итераторов
Автоматическое преобразование примитивных
типов
Автоматическое преобразование примитивных типов в
объекты соответствующих классов - оберток

22. Итоги

В этом уроке рассмотрено:
Создание массивов элементов примитивных типов
Создание массивов элементов ссылочных типов
Методы инициализации массивов
Передача параметров в программу из командной
строки
Использование коллекций типа Vector
Использование коллекций типа ArrayList и
Hashtable
English     Русский Rules