 |
|

19.07.2015, 00:18
|
|
Постоянный
Регистрация: 07.07.2015
Сообщений: 486
С нами:
5710893
Репутация:
0
|
|
Сообщение от Mangol
Как же TreeMap
Уверен и того многие не знают, а также EnumMap, LinkedList, PriorityQueue, SortedMap итд туда же, таких коллекции десятки, а если пройтись по форкам то и вовсе сотни
Тема бесконечна для обсуждения
|
|
|

19.07.2015, 00:21
|
|
Постоянный
Регистрация: 07.04.2015
Сообщений: 960
С нами:
5842272
Репутация:
1039
|
|
Сообщение от L2CCCP
Уверен и того многие не знают, а также EnumMap, LinkedList, PriorityQueue, SortedMap итд туда же, таких коллекции десятки, а если пройтись по форкам то и вовсе сотни
Тема бесконечна для обсуждения
Тогда уж взять интерфейсы, которые эти все коллекции реализуют - Set, Map, List, Queue Ну или вовсе Collection
Тема не имеет смысла, так как описание этого эксепшна есть в офф.документации.
|
|
|

19.07.2015, 00:22
|
|
Новичок
Регистрация: 21.01.2010
Сообщений: 0
С нами:
8581120
Репутация:
0
|
|
Сообщение от Mizuwokiru
Тогда уж взять интерфейсы, которые эти все коллекции реализуют - Set, Map, List, Queue Ну или вовсе Collection
А чем он плох? Подумаешь нет почти функционала.
|
|
|

19.07.2015, 03:22
|
|
Постоянный
Регистрация: 22.06.2015
Сообщений: 562
С нами:
5732354
Репутация:
0
|
|
Стоит упомянуть, что использование коллекций основанных на массивах - очень нежелательно при высокой частоте добавления и удаления элементов, т.к. в CopyOnWrite на каждую такую операцию массив ресайзится. Если такая коллекция долгоживущая, то элементы ее массива попадут в олдген и с большой вероятностью вообще никогда не очистятся (ну опять же, все зависит от настройки JVM, но если говорить конкретно о l2j, то я видел fullgc лишь несколько раз, да и то, от жесткого недостатка памяти; плюс стоит помнить, что fullgc - нежелательный гость).
Вспоминаем, что все коллекции основанные на массивах имеют RandomAccess, что означает, то что их итерация методом итераторов (уж извините за косноязычие) - плохо и таких людей надо шлепать по попе. В нормальном случае такие коллекции итерируются методом:
Код:
[CODE]
for(int i = 0; i
Если мы хотим использовать коллекцию в случаях, когда у нас частые вызовы на удаление/запись, то лучше использовать вещи основанные на нодах, а-ля LinkedBlockingDeque/LinkedBlockingQueue/LinkedList/..., ну и конечно же придется делать свою имплементацию таких вещей и подключать туда кеширование нод, чтобы не напрягать GC.
|
|
|

19.07.2015, 17:14
|
|
Постоянный
Регистрация: 09.07.2015
Сообщений: 418
С нами:
5708248
Репутация:
0
|
|
[QUOTE="zcxv"]
Стоит упомянуть, что использование коллекций основанных на массивах - очень нежелательно при высокой частоте добавления и удаления элементов, т.к. в CopyOnWrite на каждую такую операцию массив ресайзится. Если такая коллекция долгоживущая, то элементы ее массива попадут в олдген и с большой вероятностью вообще никогда не очистятся (ну опять же, все зависит от настройки JVM, но если говорить конкретно о l2j, то я видел fullgc лишь несколько раз, да и то, от жесткого недостатка памяти; плюс стоит помнить, что fullgc - нежелательный гость).
Вспоминаем, что все коллекции основанные на массивах имеют RandomAccess, что означает, то что их итерация методом итераторов (уж извините за косноязычие) - плохо и таких людей надо шлепать по попе. В нормальном случае такие коллекции итерируются методом:
Код:
[CODE]
for(int i = 0; i
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|