Java Collections Framework - очень важный и объемный (в смысле нужно много знать) набор классов-контейнеров. Описывать фреймоворк (будем его так называть) я не буду - я не спец + в каждой книжке по java есть нормальное описание. Скажу о проблемах и о том, как я сейчас изучаю коллекции.
Проблемы:
Набор классов очень прост и логичен по своей структуре. Но классов реально много и нужно запоминать черем ArrayList отличается о HashSet'а, что лучше в каких ситуациях. С первого раза запомнить все точно не удастся
Как я изучаю:
- Прочитал раздел в книге "Философия Java" Брюса Эккеля - составил общее представление
- Поискал информацию про коллекции в интернете. Хорошее описание нашел только здесь - достаточно кратко и понятно. Даже лучше, чем в книге, на мой взгляд.
- Повторно прочитал про коллекции в Core Java(TM), Volume I--Fundamentals. Пока читал про HasSet'ы разобрался (насколько это возможно на данном этапе) с equals, compareTo и hashCode
- Повторно прочитал про коллекции, разобрался с производительностью.
- Ответил на вопросы, которые нашел в интернете (ниже)
- Поделал упражнения Эккеля
Изучая коллекции (как и все остальное), старайтесь не запоминать, а понимать - почему ArrayList работает медленнее LinkedList при вставке / удалении объектов, почему hashCode необходимо переопределять с equals и т.д. Если понять, как устроен ArrayList, LinkedList, HashSet и т.д. все становится ясно.
Меропреятий я проделал, действительно, много. Но что-то в голове точно останется =)
Список вопросов, на которые я ответил сразу после прочтения документации
- Назовите основные интерфейсы коллекций и их имплементации
- Чем отличается ArrayList от LinkedList? В каких случаях лучше использовать первый, а в каких второй?
- Чем отличается HashMap от Hashtable?
- Чем отличается ArrayList от Vector?
- Чем отличаются объявления List<Integer> от Collection<Integer>?
- Объясните отличия между HashSet, TreeSet
- Каким образом можно синхронизировать методы HashMap, ArrayList?
- Назовите особенности интерфейса Set
- Как правильно удалить элемент из ArrayList?
- Дан TreeSet, добавили несколько элементов в виде цифр. Что будет при выводе данных с помощью итератора?
- Привести пример, когда лучше использовать Map, а когда наоборот Set
Вопросы, ответы на которые необходимо было уточнить
- Каким образом можно отсортировать коллекцию?
- Объясните отличия между HashSet, LinkedHashSet
Комментариев нет:
Отправить комментарий