Comments 21
Очень похоже на главу из книги с ссылками на офф. документацию. Можно уточнить источник(и), кроме статей с хабра?
0
А почему про Stream не написали?
-1
а какое отношение Stream имеет к Java Collections Framework?
0
Ну как бы все коллекции от него наследуются. И почти все самые важные методы работы с коллекциями содержатся именно там.
0
Допустим, вы говорите про тот самый Stream, который появился в Java 8. Можете показать хотя бы одну коллекцию, которая наследуется от него?
0
Блин, и правда мой косяк. Они же все просто имеют метод stream(). Но мне кажется не рассказывать про stream когда говоришь про коллекции уже как-то неправильно.
0
Еще для начинающих разработчиков следовало бы уточнить затраты по памяти/времени на типичные операции.
+1
Пара неточностей, как мне кажется:
Не очень понял почему базируется на HashTable, если под капотом HashMap?
Наверно, здесь имелось в виду, что в основе лежит LinkedHashMap вместо HashMap?
HashSet — реализация интерфейса Set, базирующаяся на HashTable. Внутри использует объект HashMap для хранения данных.
Не очень понял почему базируется на HashTable, если под капотом HashMap?
LinkedHashSet — отличается от HashSet только тем, что в основе лежит LinkedHashSet вместо HashSet.
Наверно, здесь имелось в виду, что в основе лежит LinkedHashMap вместо HashMap?
0
Лучше почитать статьи товарища tarzan82, у него более подробно про все коллекции:
LinkedHashMap
ArrayList
LinkedList
HashMap
LinkedHashMap
ArrayList
LinkedList
HashMap
0
Также в статье можно было бы показать какие улучшения получили HashMap в java8.
0
Всё дело в том, что статья и так получилась довольно объёмная. А нововведения и изменения Collections Framework в Java 8 — это материал для другой вполне самодостаточной статьи. Тем более что целью статьи было всё же создать лаконичный справочник-памятку, а не подробный анализ.
0
Но Вы приводите ссылку на более раннюю статью, в которой написано, что на один bucket приходится цепочка элементов. Важный момент в java8 — это то, что теперь bucket ссылается на бинарное дерево. и мне кажется, это стоит упоминания.
0
Биндерево только когда длинна цепочки превышает 8, что при адекватном лоад факторе и вменяемой реализации хеш-кода не происходит никогда.
0
Ну то что в Java 8 bucket — бинарное дерево — не совсем верно. Потому как деревом он становится только в том случае, если его размер больше TREEIFY_THRESHOLD. Причём данный процесс оборотный, то есть если по каким-то причинам bucket становится снова меньше, то он возвращается к «плоской» структуре (односвязный список). Но, так как в данной статье не объясняется внутреннее устройство коллекций, то для того чтобы связно изложить этот материал, прийдётся углубляться, что не помещается в рамки этого поста.
Но Ваше замечание действительно достойное внимания, потому считаю, что лучшим решением будет уточнить актуальность ссылки. Что и сделано.
Но Ваше замечание действительно достойное внимания, потому считаю, что лучшим решением будет уточнить актуальность ссылки. Что и сделано.
0
Sign up to leave a comment.
Справочник по Java Collections Framework