Основы программирование: Введение в Java. Коллекции

Содержание

Слайд 2

Задача 1 – Знакомство с ArrayList Создать коллекцию ArrayList. Добавить в

Задача 1 – Знакомство с ArrayList

Создать коллекцию ArrayList. Добавить в нее

3 элемента типа String. Вывести элементы, содержащиеся в коллекции в консоль при помощи итератора.
Слайд 3

Задача 1 – Решение ArrayList v = new ArrayList(); v.add("10"); v.add("2");

Задача 1 – Решение

ArrayList v = new ArrayList();
v.add("10");
v.add("2");
v.add("30");
Iterator iterator = v.iterator();


while (iterator.hasNext()) {
Object obj = iterator.next();
System.out.println(obj);
}
Слайд 4

Пример Необходимо на основе текстового файла «Текст» создать файл со словарем

Пример

Необходимо на основе текстового файла «Текст» создать файл со словарем «Словарь».


Пример:
«Текст»:
Мама мыла раму. Мама мыла яблоко
«Словарь»:
мама
мыла
раму
яблоко
Слайд 5

Пример (идея реализации) Алгоритм: 1). Читаем файл «Текст» посимвольно, вычленяя слова

Пример (идея реализации)

Алгоритм:
1). Читаем файл «Текст» посимвольно, вычленяя слова из текста.
2).

Каждое слово добавляем в КОЛЛЕКЦИЮ, если его там не было до этого.
3). Коллекцию сохраняем в файле «Словарь»
Слайд 6

Пример: коллекция Vector Collection dict = new Vector(); 1) слово читается

Пример: коллекция Vector

Collection dict = new Vector();
1) слово читается из файла «Текст»
String

word = ...;
2) Слово добавляется в коллекцию, если его там не было
if (!dict.contains(word)) {
dict.add(word);
}
3) Коллекция сохраняется в файле
BufferedWriter bw = new BufferedWriter(...);
for (Object word : dict) {
bw.write((String)word);
bw.newLine();
}
bw.close();
Слайд 7

Пример: коллекция ArrayList Collection dict = new ArrayList(); 1) слово читается

Пример: коллекция ArrayList

Collection dict = new ArrayList();
1) слово читается из файла «Текст»
String

word = ...;
2) Слово добавляется в коллекцию, если его там не было
if (!dict.contains(word)) {
dict.add(word);
}
3) Коллекция сохраняется в файле
BufferedWriter bw = new BufferedWriter(...);
for (Object word : dict) {
bw.write((String)word);
bw.newLine();
}
bw.close();
Слайд 8

Чем отличаются Vector и ArrayList? http://www.quizful.net/interview/java/vector-arraylist-difference Вопрос В чем принципиальное отличие

Чем отличаются Vector и ArrayList?

http://www.quizful.net/interview/java/vector-arraylist-difference
Вопрос
В чем принципиальное отличие

классов Vector и ArrayList
Ответ
Методы класса Vector синхронизированы, в то время как ArrayList - нет.
Слайд 9

Потоки и синхронизация Коротко про потоки Коротко про синхронизацию

Потоки и синхронизация

Коротко про потоки
Коротко про синхронизацию

Слайд 10

Разбор кода примера DictionaryLoaderTest DictionaryLoader.saveDictToFile Работа с файлами при записи DictionaryLoader.loadTextToDict Разбор алгоритма Флаги – inWord

Разбор кода примера

DictionaryLoaderTest
DictionaryLoader.saveDictToFile
Работа с файлами при записи
DictionaryLoader.loadTextToDict
Разбор алгоритма
Флаги – inWord

Слайд 11

Обработка исключений Exception IOException FileNotFoundException Правила перехвата с учетом иерархии классов исключений

Обработка исключений

Exception
IOException
FileNotFoundException
Правила перехвата с учетом иерархии классов исключений

Слайд 12

Демонстрация работы Collection dict = new LinkedList(); vs Collection dict = new HashSet();

Демонстрация работы

Collection dict = new LinkedList();
vs
Collection dict = new HashSet();

Слайд 13

Пример: коллекция TreeSet Collection dict = new TreeSet(); 1) слово читается

Пример: коллекция TreeSet

Collection dict = new TreeSet();
1) слово читается из файла

«Текст»
String word = ...;
2) Слово добавляется в коллекцию, если его там не было
if (!dict.contains(word)) {
dict.add(word);
}
3) Коллекция сохраняется в файле
BufferedWriter bw = new BufferedWriter(...);
for (Object word : dict) {
bw.write((String)word);
bw.newLine();
}
bw.close();
Слайд 14

Чем отличаются Vector и TreeSet? Время работы с Vector: 758 мс

Чем отличаются Vector и TreeSet?

Время работы с Vector: 758 мс
Время

работы с TreeSet: 104 мс
Слайд 15

Пример: разные коллекции Collection dict = new Vector(); Collection dict =

Пример: разные коллекции

Collection dict = new Vector();
Collection dict = new ArrayList();
Collection

dict = new LinkedList();
Collection dict = new TreeSet(); // элементы упорядочены
// по значению, но не по порядку добавления
Collection dict = new HashSet(); // порядок обхода неопределен
Collection dict = new LinkedHashSet(); // порядок обхода
// элементов = порядку добавления элементов
1) слово читается из файла «Текст»
String word = ...;
2) Слово добавляется в коллекцию, если его там не было
if (!dict.contains(word)) {
dict.add(word);
}
3) Коллекция сохраняется в файле
BufferedWriter bw = new BufferedWriter(...);
for (Object word : dict) {
bw.write((String)word);
bw.newLine();
}
bw.close();
Слайд 16

Пример: разные коллекции – время работы

Пример: разные коллекции – время работы

Слайд 17

Иерархии коллекций Источник: http://www.quizful.net/post/Java-Collections

Иерархии коллекций

Источник: http://www.quizful.net/post/Java-Collections

Слайд 18

Слайд 19

Слайд 20

Слайд 21

Итераторы public interface Iterator

Итераторы

public interface Iterator

Слайд 22

Generics Что хранит List li1 = new ArrayList (); Что хранит

Generics

Что хранит
List li1 = new ArrayList ();
Что хранит
List li =

new ArrayList();
Слайд 23

Класс Object

Класс Object

Слайд 24

Класс Object (2)

Класс Object (2)

Слайд 25

Класс Object

Класс Object

Слайд 26

Использование toString() ArrayList a3 = new ArrayList(); a3.add("Один"); a3.add("Два"); a3.add("Пять"); System.out.println("a3 = " + a3);

Использование toString()

ArrayList a3 = new ArrayList();
a3.add("Один");
a3.add("Два");
a3.add("Пять");
System.out.println("a3 = " + a3);

Слайд 27

Коротко о структурах данных Динамический массив Список Хэш Двоичное дерево поиска

Коротко о структурах данных

Динамический массив
Список
Хэш
Двоичное дерево поиска

Слайд 28

Хэш Пример про заказы по телефону Какие решения возможны? Как искать

Хэш

Пример про заказы по телефону
Какие решения возможны?
Как искать заказ за 5

секунд вручную?
Структура хэша:
Хэш-функция
Хэш-таблица
Схема разрешения коллизий (список)