Java Collections Framework: различия между версиями
[отпатрулированная версия] | [отпатрулированная версия] |
Vadimr (обсуждение | вклад) Нет описания правки |
Sergei (обсуждение | вклад) м →Интерфейс List: викификация |
||
(не показано 27 промежуточных версий 17 участников) | |||
Строка 1: | Строка 1: | ||
{{wikibooks|Java Programming|Collections}} |
{{wikibooks|Java Programming|Collections}} |
||
''[[Java]] collections framework '' — это набор связанных [[Класс (программирование)|классов]] и [[Интерфейс (объектно-ориентированное программирование)|интерфейсов]], реализующих широко используемые [[Структура данных|структуры данных]] — [[Коллекция (программирование)|коллекции]]. Он был спроектирован и разработан, в первую очередь, [[Джошуа Блох]]ом. |
|||
Хотя это [[framework]], он не имеет явных |
Хотя это [[framework]]<ref>[https://www.quora.com/Why-is-Collection-in-Java-called-a-framework-but-not-a-library-It-seems-counter-intuitive-to-the-definition-of-a-framework-which-follows-the-Dont-call-us-well-call-you-principle Why-is-Collection-in-Java-called-a-framework-but-not-a-library]</ref>, он не имеет явных [[Критический участок кода|критических участков кода]]{{Нет АИ|24|12|2015}}, и работает как '''библиотека'''. |
||
== Архитектура == |
|||
Почти все коллекции в Java порождаются интерфейсом '''{{Javadoc:SE|package=java.util|java.base/java/util|Collection}}''', который определяет основную структуру всех коллекций. Он определяет методы add() и remove() для добавления и удаления элементов, а также метод toArray(), который возвращает массив, состоящий из элементов данной коллекции. И, метод contains() проверяет содержится ли данный элемент в коллекции. Интерфейс Collection наследуется от интерфейса '''{{Javadoc:SE|package=java.lang|java.base/java/lang|Iterable}}'''. |
|||
=== Интерфейс List === |
|||
В JCF списки реализуются через интерфейс '''{{Javadoc:SE|package=java.util|java.base/java/util|List}}'''. Два конкретных класса имплементируют List. Первый, '''{{Javadoc:SE|package=java.util|java.base/java/util|ArrayList}}''', который реализует список на основе массива. Второй реализацией является '''{{Javadoc:SE|package=java.util|java.base/java/util|LinkedList}}''', который реализует '''{{Javadoc:SE|package=java.util|java.base/java/util|List}}''' как [[двусвязный список]]. |
|||
=== Интерфейс Set === |
|||
Интерфейс '''{{Javadoc:SE|package=java.util|java.base/java/util|Set}}''' реализует концепцию множества. Множество не может содержать двух одинаковых элементов. К тому же множество не устанавливает порядок. Set имплементируется '''{{Javadoc:SE|package=java.util|java.base/java/util|HashSet}}''', '''{{Javadoc:SE|package=java.util|java.base/java/util|LinkedHashSet}}''' и '''{{Javadoc:SE|package=java.util|java.base/java/util|TreeSet}}'''. |
|||
== См. также == |
== См. также == |
||
* [[Контейнер (программирование)|Контейнер]] |
* [[Контейнер (программирование)|Контейнер]] |
||
== Примечания == |
|||
{{примечания}} |
|||
== Ссылки == |
== Ссылки == |
||
* [http://java.sun.com/docs/books/tutorial/collections/ 'The Java Tutorials - Collections' by Josh Bloch] |
* [http://java.sun.com/docs/books/tutorial/collections/ 'The Java Tutorials - Collections' by Josh Bloch] |
||
Строка 15: | Строка 26: | ||
* [http://www-128.ibm.com/developerworks/java/library/j-tiger07195/ Taming Tiger: The Collections Framework] |
* [http://www-128.ibm.com/developerworks/java/library/j-tiger07195/ Taming Tiger: The Collections Framework] |
||
* [http://javalessons.com/cgi-bin/fun/java-tutorials-main.cgi?sub=adv&ses=ao789 Collections Lessons] |
* [https://web.archive.org/web/20150306171304/http://javalessons.com/cgi-bin/fun/java-tutorials-main.cgi?sub=adv&ses=ao789 Collections Lessons] |
||
* [http://www.collectionspy.com/ CollectionSpy - a Java profiler that focuses on the Collections Framework] |
* [https://web.archive.org/web/20090704095801/http://www.collectionspy.com/ CollectionSpy - a Java profiler that focuses on the Collections Framework] |
||
* [https://github.com/soulaway/jse8collectionBenchmark/blob/master/benchmark.res Collections benchmark] (insertions, iterations) [[Java Platform, Standard Edition|Java SE]] 1.8 |
|||
[[Категория:Java]] |
[[Категория:Java]] |
||
[[en:Java collections framework]] |
|||
{{изолированная статья}} |
Текущая версия от 07:32, 26 марта 2022
Java collections framework — это набор связанных классов и интерфейсов, реализующих широко используемые структуры данных — коллекции. Он был спроектирован и разработан, в первую очередь, Джошуа Блохом.
Хотя это framework[1], он не имеет явных критических участков кода[источник не указан 3305 дней], и работает как библиотека.
Архитектура
[править | править код]Почти все коллекции в Java порождаются интерфейсом java.util.Collection
, который определяет основную структуру всех коллекций. Он определяет методы add() и remove() для добавления и удаления элементов, а также метод toArray(), который возвращает массив, состоящий из элементов данной коллекции. И, метод contains() проверяет содержится ли данный элемент в коллекции. Интерфейс Collection наследуется от интерфейса java.lang.Iterable
.
Интерфейс List
[править | править код]В JCF списки реализуются через интерфейс java.util.List
. Два конкретных класса имплементируют List. Первый, java.util.ArrayList
, который реализует список на основе массива. Второй реализацией является java.util.LinkedList
, который реализует java.util.List
как двусвязный список.
Интерфейс Set
[править | править код]Интерфейс java.util.Set
реализует концепцию множества. Множество не может содержать двух одинаковых элементов. К тому же множество не устанавливает порядок. Set имплементируется java.util.HashSet
, java.util.LinkedHashSet
и java.util.TreeSet
.
См. также
[править | править код]Примечания
[править | править код]Ссылки
[править | править код]- CollectionSpy - a Java profiler that focuses on the Collections Framework
- Collections benchmark (insertions, iterations) Java SE 1.8