Похожие презентации:
Массивы и коллекции
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. Создание массива элементов ссылочного типа
arrVar1. Объявите массив.
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