Разделы презентаций


Коллекции

Интерфейс Comparable public interface Comparable { public int compareTo(T obj); }

Слайды и текст этой презентации

Слайд 1Программирование на Java
Тема 5.2Коллекции

Программирование на JavaТема 5.2Коллекции

Слайд 2 Интерфейс Comparable



public interface Comparable

{ public int compareTo(T obj); }

Интерфейс Comparable  public interface Comparable    { public int compareTo(T obj); }

Слайд 3 Интерфейс Comparable
В интерфейсе Comparable объявлен всего один метод compareTo(T obj),

предназначенный для реализации упорядочивания объектов класса. Его удобно использовать при

сортировке упорядоченных списков или массивов объектов.
Данный метод сравнивает объект, вызывающий метод с объектом obj. В отличие от метода equals, который возвращает true или false, compareTo возвращает:
     0, если значения равны;
 Отрицательное значение, если вызывающий объект меньше параметра;
 Положительное значение ,  если вызывающий объект больше параметра.
Метод может выбросить исключение ClassCastException, если типы объектов не совместимы при сравнении.
Необходимо помнить, что  аргумент метода compareTo имеет тип сравниваемого объекта класса.
Классы Byte, Short, Integer, Long, Double, Float, Character, String , Date уже реализуют интерфейс Comparable.
См. на сл. слайде пример реализующий интерфейс Comparable.

Интерфейс Comparable В интерфейсе Comparable объявлен всего один метод compareTo(T obj), предназначенный для реализации упорядочивания объектов класса. Его

Слайд 4 Интерфейс Comparable

Интерфейс Comparable

Слайд 5 Интерфейс Comparable

Интерфейс Comparable

Слайд 6 Интерфейс Comparable

Интерфейс Comparable

Слайд 7 Интерфейс Comparable

Интерфейс Comparable

Слайд 8 Интерфейс Comparator



public interface Comparator


{ int compare(T obj1, T obj2);

equals(T obj).
}


Интерфейс Comparator   public interface Comparator    { int compare(T obj1, T

Слайд 9 Интерфейс Comparator
В интерфейсе Comparator объявлено два метода compare(T obj1, T

obj2) и equals(T obj).
compare(T obj1, T obj2) – так же, как и метод compareTo интерфейса Comparable, упорядочивает объекты

класса. Точно так же на выходе получает 0, положительное значение и отрицательное значение.
Метод может выбросить исключение ClassCastException, если типы объектов не совместимы при сравнении.
Основным отличием интерфейса Comparator от Comparable является то, что вы можете создавать несколько видов независимых сортировок.
equals(T obj)  - сравнивает компараторы объектов. Переопределяется очень редко.
См. на сл. слайде пример реализующий интерфейс Comparator.

Интерфейс Comparator В интерфейсе Comparator объявлено два метода compare(T obj1, T obj2) и equals(T obj).compare(T obj1, T obj2) – так же, как и

Слайд 10 Интерфейс Comparator

Интерфейс Comparator

Слайд 11 Интерфейс Comparator

Интерфейс Comparator

Слайд 12 Интерфейс Comparator

Интерфейс Comparator

Слайд 13 Интерфейс Comparator

Интерфейс Comparator

Слайд 14 Интерфейс Set

public interface Set extends Collection
{ int

size();


boolean isEmpty();
boolean contains(Object element);
boolean add(E element);
boolean remove(Object element);
Iterator

iterator();
boolean containsAll(Collection c);

boolean addAll(Collection c);
boolean removeAll(Collection c);
void clear();
Object[] toArray();

}
Интерфейс Set public interface Set extends Collection{ int size();boolean isEmpty();boolean contains(Object element);boolean add(E element); boolean

Слайд 15 Интерфейс SortedSet

public interface SortedSet extends Set
{ Comparator

toElement);
SortedSet subSet(E fromElement,
E toElement);
SortedSet tailSet(E fromElement);

}
Интерфейс SortedSet public interface SortedSet extends Set{ Comparator

Слайд 16 Интерфейс Set и SortedSet
Интерфейс Set из пакета java.util, расширяющий интерфейс Collection,

описывает неупорядоченную коллекцию, не содержащую повторяющихся элементов. Это соответствует математическому

понятию множества (set) . Новые методы в интерфейс Set не добавлены, просто метод add() не станет добавлять еще одну копию элемента, если такой элемент уже есть в множестве.
Интерфейс SortedSet  расширяющий интерфейс Set, описывает упорядоченное множество, отсортированное по естественному порядку возрастания его элементов или по порядку, заданному реализацией интерфейса Comparator. Элементы не нумеруются, но есть понятие первого, последнего, большего и меньшего элемента. Доп-е методы интерфейса отражают эти понятия:
Comparator comparator () — возвращает способ упорядочения коллекции; 
object first ()— возвращает первый, меньший элемент коллекции;
SortedSet headset (Object toEiement) — возвращает начальные, меньшие элементы до элемента toElement исключительно;
object last () — возвращает последний, больший элемент коллекции;
SortedSet subset(Object fromElement, Object toEiement) — возвращает подмножество коллекции от элемента fromElement включительно до элемента toElement исключительно;
SortedSet tailSet (Object fromElement) — возвращает последние, большие элементы коллекции от элементаf romElement включительно.
Платформа Java содержит три класса реализации интерофейса Set: HashSet, TreeSet и LinkedHashSet.

Интерфейс Set и SortedSet Интерфейс Set из пакета java.util, расширяющий интерфейс Collection, описывает неупорядоченную коллекцию, не содержащую повторяющихся элементов.

Слайд 17 Классы HashSet, TreeSet, LinkedHashSet



Конструкторы класса HashSet :
HashSet()
HashSet(int capacity)
HashSet(int capacity, float 

loadFactor)
HashSet(Collection c)
Конструкторы класса TreeSet :
TreeSet ()
TreeSet (Comparator с) 
TreeSet (Collection coll)
TreeSet (SortedMap

sf)
Классы HashSet, TreeSet, LinkedHashSet Конструкторы класса HashSet :HashSet()HashSet(int capacity)HashSet(int capacity, float  loadFactor)HashSet(Collection c)Конструкторы класса TreeSet :TreeSet () TreeSet (Comparator с) TreeSet (Collection

Слайд 18 Классы HashSet, TreeSet, LinkedHashSet
Класс HashSet наследуется от абстрактного

суперкласса AbstractSet и реализует интерфейс Set, используя хэш-таблицу для хранения коллекции. Ключ (хэш-код)

используется вместо индекса для доступа к данным, что значительно ускоряет поиск определенного элемента.
В классе HashSet четыре конструктора:
Hashset () — создает пустой объект с показателем загруженности 0,75;
HashSet (int capacity) — создает пустой объект с начальной емкостью capacity и показателем загруженности 0,75;
HashSet (int capacity, float loadFactor) — создает пустой объект с начальной емкостью capacity и показателем загруженности loadFactor ;
HashSet (Collection coll) — создает объект, содержащий все элементы коллекции coll , с емкостью, равной удвоенному числу элементов коллекции coll , но не менее 11, и показателем загруженности 0,75.
Класс TreeSet реализован как бинарное дерево поиска, значит, его элементы хранятся в упорядоченном виде. Это значительно ускоряет поиск нужного элемента.  Обработка операций удаления и вставки объектов происходит медленнее, чем в хэш-множествах, но быстрее, чем в списках. Класс TreeSet полностью реализует интерфейс SortedSet
В классе TreeSet четыре конструктора:
TreeSet () — создает пустой объект с естественным порядком элементов;
TreeSet (Comparator с) — создает пустой объект, в котором порядок зад-ся объектом сравнения с;
TreeSet (Collection coll) — создает объект, содержащий все элементы коллекции coll , с естественным порядком ее элементов;
TreeSet (SortedMap sf) — создает объект, содержащий все эл-ты отображения sf , в том же порядке.
TreeSet коллекция которая позволяет хранить объекты в отсортированном виде. Для собственных классов необходимо реализовать интерфейс Comparable или Comparator, в противном случае, при добавлении второго элемента вы получите ошибку: cannot be cast to java.lang.Comparable
Классы HashSet, TreeSet, LinkedHashSet Класс HashSet наследуется от абстрактного суперкласса AbstractSet и реализует интерфейс Set, используя хэш-таблицу для хранения

Слайд 19 Классы HashSet, TreeSet, LinkedHashSet
LinkedHashSet - упорядоченная версия

HashSet, которая обслуживает дважды связанный список и его элементы. Следует

использовать данный класс вместо HashSet, когда Вам важен порядок итерации. Когда вы проходите через HashSet - порядок непредсказуем, в то время как LinkedHashSet позволяет Вам проходить через элементы в том порядке, в котором они были вставлены.

Классы HashSet, TreeSet, LinkedHashSet LinkedHashSet - упорядоченная версия HashSet, которая обслуживает дважды связанный список и

Слайд 20 Интерфейс Set и классы HashSet, TreeSet, LinkedHashSet

Интерфейс Set и классы HashSet, TreeSet, LinkedHashSet

Слайд 21 Интерфейс Set и классы HashSet, TreeSet, LinkedHashSet


Не смотря на то, что все три рассматриваемые коллекции реализуют

один тот же интерфейс, они отличаются друг от друга. Главное различие — это порядок хранения элементов. HashSet хранит элементы в случайном (на первый взгляд) порядке. Дело в том, что для быстрого поиска HashSet расчитывает для каждлого элемента hashCode и именно по этому ключу ищет и упорядочивает элементы внутри себя. TreeSet, в отличии от HashSet, хранит элементы упорядоченно, то есть в каком бы порядке мы не добавляли и не удаляли элементы, коллекция останется строго упорядоченной. LinkedHashSet используется в том случае, если нам необходимо помнить порядок добавления элементов. Поиск по этой коллекции происходит также по hashCode, но порядок будет всегда совпадать с очерёдностью добавления.
В конструкторе класса SetsSamples создаются объекты наших коллекции и вызывается метод fillSets, который и добавит count случайных чисел в только что созданные объекты. В этом методе мы используем класс Random (который, кстати, также содержится в пакете java.utils). Этот класс используется для получения последовательностей случайных чисел. В этом примере мы используем только один из его методов — это nextInt. Данный метод каждый раз будет возвращать случайное число в пределах от 0 до переданного параметром значения.
Для каждой коллекции вызываются методы toString() и size(). Метод toString() возвращает строку, содержащую элементы коллекции, перечисленные через запятую. Список справа и слева ограничивается квадратными скобками «[" и "]» (например [1, 2, 5]). size() возвращает количество элементов в коллекции.
Метод removeMax удаляет максимальный элемент из коллекции treeSet. Так, как TreeSet хранит элементы упорядоченно, метод last() (возвращает последний элемент коллекции) вернёт нам наибольший элемент. С помощью метода remove мы удалим этот элемент из коллекции.
У нас есть возможность создавать коллекцию, сразу добавляя в неё элементы из другой. Этим и воспользуемся в методе create для копирования коллекции.
removeAll удалит все элементы linkedHashSet из hashSet.
retainAll — наоборот, оставит в hashSet все элементы, которые есть в linkedHashSet
Интерфейс Set и классы HashSet, TreeSet, LinkedHashSet Не смотря на то, что все три

Слайд 22 Интерфейс Set и классы HashSet, TreeSet, LinkedHashSet

Интерфейс Set и классы HashSet, TreeSet, LinkedHashSet

Слайд 23 Интерфейс Set и классы HashSet, TreeSet, LinkedHashSet

Интерфейс Set и классы HashSet, TreeSet, LinkedHashSet

Слайд 24 Интерфейс Set и класс TreeSet
Пример .

Интерфейс Set и класс TreeSetПример .

Слайд 25 Интерфейс Set и класс TreeSet
Пример .

Интерфейс Set и класс TreeSetПример .

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика