HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 19.07.2015, 00:18
L2CCCP
Постоянный
Регистрация: 07.07.2015
Сообщений: 486
С нами: 5710893

Репутация: 0
По умолчанию

Цитата:
Сообщение от Mangol  

Как же TreeMap
Уверен и того многие не знают, а также EnumMap, LinkedList, PriorityQueue, SortedMap итд туда же, таких коллекции десятки, а если пройтись по форкам то и вовсе сотни

Тема бесконечна для обсуждения
 
Ответить с цитированием

  #12  
Старый 19.07.2015, 00:21
Mizuwokiru
Постоянный
Регистрация: 07.04.2015
Сообщений: 960
С нами: 5842272

Репутация: 1039


По умолчанию

Цитата:
Сообщение от L2CCCP  

Уверен и того многие не знают, а также EnumMap, LinkedList, PriorityQueue, SortedMap итд туда же, таких коллекции десятки, а если пройтись по форкам то и вовсе сотни
Тема бесконечна для обсуждения
Тогда уж взять интерфейсы, которые эти все коллекции реализуют - Set, Map, List, Queue Ну или вовсе Collection

Тема не имеет смысла, так как описание этого эксепшна есть в офф.документации.
 
Ответить с цитированием

  #13  
Старый 19.07.2015, 00:22
mAnGoL
Новичок
Регистрация: 21.01.2010
Сообщений: 0
С нами: 8581120

Репутация: 0
По умолчанию

Цитата:
Сообщение от Mizuwokiru  

Тогда уж взять интерфейсы, которые эти все коллекции реализуют - Set, Map, List, Queue Ну или вовсе Collection
А чем он плох? Подумаешь нет почти функционала.
 
Ответить с цитированием

  #14  
Старый 19.07.2015, 03:22
zcxv
Постоянный
Регистрация: 22.06.2015
Сообщений: 562
С нами: 5732354

Репутация: 0


По умолчанию

Стоит упомянуть, что использование коллекций основанных на массивах - очень нежелательно при высокой частоте добавления и удаления элементов, т.к. в CopyOnWrite на каждую такую операцию массив ресайзится. Если такая коллекция долгоживущая, то элементы ее массива попадут в олдген и с большой вероятностью вообще никогда не очистятся (ну опять же, все зависит от настройки JVM, но если говорить конкретно о l2j, то я видел fullgc лишь несколько раз, да и то, от жесткого недостатка памяти; плюс стоит помнить, что fullgc - нежелательный гость).

Вспоминаем, что все коллекции основанные на массивах имеют RandomAccess, что означает, то что их итерация методом итераторов (уж извините за косноязычие) - плохо и таких людей надо шлепать по попе. В нормальном случае такие коллекции итерируются методом:

Код:


[CODE]
for(int i = 0; i

Если мы хотим использовать коллекцию в случаях, когда у нас частые вызовы на удаление/запись, то лучше использовать вещи основанные на нодах, а-ля LinkedBlockingDeque/LinkedBlockingQueue/LinkedList/..., ну и конечно же придется делать свою имплементацию таких вещей и подключать туда кеширование нод, чтобы не напрягать GC.
 
Ответить с цитированием

  #15  
Старый 19.07.2015, 17:14
Grind
Постоянный
Регистрация: 09.07.2015
Сообщений: 418
С нами: 5708248

Репутация: 0
По умолчанию

[QUOTE="zcxv"]

Стоит упомянуть, что использование коллекций основанных на массивах - очень нежелательно при высокой частоте добавления и удаления элементов, т.к. в CopyOnWrite на каждую такую операцию массив ресайзится. Если такая коллекция долгоживущая, то элементы ее массива попадут в олдген и с большой вероятностью вообще никогда не очистятся (ну опять же, все зависит от настройки JVM, но если говорить конкретно о l2j, то я видел fullgc лишь несколько раз, да и то, от жесткого недостатка памяти; плюс стоит помнить, что fullgc - нежелательный гость).
Вспоминаем, что все коллекции основанные на массивах имеют RandomAccess, что означает, то что их итерация методом итераторов (уж извините за косноязычие) - плохо и таких людей надо шлепать по попе. В нормальном случае такие коллекции итерируются методом:

Код:


[CODE]
for(int i = 0; i
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.