Skip to content

Latest commit

 

History

History
152 lines (116 loc) · 5.26 KB

Collections Framework.md

File metadata and controls

152 lines (116 loc) · 5.26 KB
tags title
Java, Basic, Collections, JCF, java.util
Collections Framework

Collections Framework (JCF)

Данный framework был введён в JDK 1.2 и дополнялся.

В JCL входят классы наследуемые от Collection, а также классы связанные с Map. Также есть классы для работы с коллекциями Collections.

Все классы лежат в пакете java.util.

gg

Структура классов наследуемых от Collection

digraph hierarchy {

    nodesep=0.25
    rankdir=BT

    node [color=Red,fontname=Courier,shape=box]
    //Интерфейсы
    Iterable, Collection, List, Queue, Set, Deque, SortedSet, NavigableSet [color=Green, style=filled]

    //Классы
    ArrayList, LinkedList, PriorityQueue, ArrayDeque, HashSet, LinkedHashSet, TreeSet, EnumSet [color=Turquoise, style=filled]

    //Унаследованные классы
    Stack, Vector [color=Blue, style=diagonals]


    //Связи extends
    edge [color=Black, style=solid]
    Collection->Iterable
    {List, Queue, Set}->Collection
    Vector->Stack
    SortedSet->Set
    NavigableSet->SortedSet
    Deque->Queue 

    //Связи implements
    edge [style=dashed]
    {ArrayList, LinkedList, Stack}->List
    PriorityQueue->Queue
    {ArrayDeque, LinkedList}->Deque
    {HashSet, LinkedHashSet, EnumSet}->Set
    TreeSet->NavigableSet


    //Оформление
    node [style=invis]
    8->7->6->5->4->3->2->1[style=invis]

    {rank=max; 1; Iterable}
    {rank=same; 2; Collection}
    {rank=same; 3; List, Set, Queue}
    {rank=same; 4; PriorityQueue, HashSet}
    {rank=same; 5; ArrayList,  Deque, EnumSet}
    {rank=same; 6; LinkedHashSet, LinkedList}
    {rank=same; 7; Stack, SortedSet}
    {rank=same; 8; ArrayDeque}
}

Интерфейсы

Реализации

List Queue Set
ArrayList PriorityQueue HashSet
LinkedList LinkedList LinkedHashSet
Stack (old) ArrayDeque EnumSet
Vector (old) TreeSet

Структура классов наследуемых от Map

digraph hierarchy {

    nodesep=0.25
    rankdir=BT

    node [color=Red,fontname=Courier,shape=box]
    //Интерфейсы
    Map [color=Green, style=filled]

    //Классы
    EnumMap, WeakHashMap, LinkedHashMap, IdentityHashMap, HashMap, TreeMap [color=Turquoise, style=filled]

    //Унаследованные классы
    Properties, Dictionary [color=Blue, style=diagonals]

    //Связи implements
    edge [style=dashed]
    {EnumMap, WeakHashMap, LinkedHashMap, IdentityHashMap, HashMap, TreeMap}->Map       

    //Оформление
    node [style=invis]
    4->3->2->1[style=invis]

    {rank=max; 1; Map}
    {rank=same; 2; HashMap, EnumMap, LinkedHashMap}
    {rank=same; 3; WeakHashMap, IdentityHashMap, TreeMap}
    {rank=same; 4; Dictionary, Properties}
}

Интерфейсы

Реализации

Сторонние библиотеки

  • Apache Commons
  • Guava

Унаследованные коллекции (устаревшие)

Сторонние уроки и статьи

Tutorial Полезная статья по коллекциям, о чём многие забывают

Полный обзор по коллекциям и сторонним библиотекам

Вопросы с собеседований