Java Collections Framework: различия между версиями
[непроверенная версия] | [отпатрулированная версия] |
чозанах 8-) |
Sergei (обсуждение | вклад) м →Интерфейс List: викификация |
||
(не показаны 4 промежуточные версии 3 участников) | |||
Строка 1: | Строка 1: | ||
{{wikibooks|Java Programming|Collections}} |
{{wikibooks|Java Programming|Collections}} |
||
''[[Java]] collections 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}}, и работает как '''библиотека'''. |
Хотя это [[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}}, и работает как '''библиотека'''. |
||
Строка 9: | Строка 9: | ||
=== Интерфейс List === |
=== Интерфейс 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}}''' как двусвязный список. |
В 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 === |
=== Интерфейс Set === |
||
Строка 26: | Строка 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] |
||
* [https://web.archive.org/web/20090704095801/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 SE 1.8 |
* [https://github.com/soulaway/jse8collectionBenchmark/blob/master/benchmark.res Collections benchmark] (insertions, iterations) [[Java Platform, Standard Edition|Java SE]] 1.8 |
||
[[Категория:Java]] |
[[Категория:Java]] |
Текущая версия от 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