Программирование на JAVA

Навигация

Лекция 1. Что такое Java? История создания

Лекция 2. Основы объектно-ориентированного программирования

Лекция 3. Лексика языка

Лекция 4. Типы данных

Лекция 5. Имена. Пакеты

Лекция 6. Объявление классов

Лекция 7. Преобразование типов

Лекция 8. Объектная модель в Java

Лекция 9. Массивы

Лекция 10. Операторы и структура кода. Исключения

Лекция 11. Пакет java.awt

Лекция 12. Потоки выполнения. Синхронизация

Лекция 13. Пакет java.lang

Лекция 14. Пакет java.util

Лекция 15. Пакет java.io

Лекция 16. Введение в сетевые протоколы

В отличие от AbstractCollection, в этом случае нет необходимости реализовывать метод iterator, так как он уже реализован поверх методов доступа к элементам списка get, set, add, remove.

java.util.AbstratctSet - данный класс расширяет AbstractCollection и реализует основную функциональность, определенную в интерфейсе Set. Следует отметить, что этот класс не переопределяет функциональность, реализованную в классе AbstractCollection.

java.util.AbstratctMap - этот класс расширяет основную функцио­нальность, определенную в интерфейсе Map. Для реализации немодифи­цируемого класса, унаследованного от AbstractMap, достаточно опреде­лить метод entrySet, который должен возвращать объект, приводимый к типу AbstractSet. Этот набор (Set) не должен обеспечивать методов для добавления и удаления элементов из набора. Для реализации модифици­руемого класса Map необходимо также переопределить метод put и доба­вить в итератор, возвращаемый entrySet().iterator(), поддержку метода remove.

java.util.AbstratctSequentialList - этот класс расширяет AbstractList и является основой для класса LinkedList. Основное отличие от AbstractList заключается в том, что этот класс обеспечивает не только по­следовательный, но и произвольный доступ к элементам списка, с помо­щью методов get(int index), set(int index, Object element), set(int index, Object element), add(int index, Object element) и remove(int index). Для того, чтобы реализовать данный класс, необходимо переопределить мето­ды listlterator и size. Причем, если реализуется немодифицируемый спи-с°к, для итератора достаточно реализовать методы hasNext, next, hasPrevious, previous и index. Для модифицируемого списка необходимо Дополнительно реализовать метод set, а для списков переменной длины е1Чеи add, и remove.

Конкретные классы коллекций

java.util.ArrayList - этот класс расширяет AbstractList и весьма похож на класс Vector. Он также динамически расширяется, как Vector, однако его методы не являются синхронизированными, вследствие чего операции с ним выполняются быстрее. Для того, чтобы воспользоваться синхрони­зированной версией ArrayList, можно применить вот такую конструкцию:

List I = Collections.synchronizedList(new ArrayList(...)); public class Test {