Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ArrayList управление емкостю

276
28 января 2008 года
Rebbit
1.1K / / 01.08.2005
Я в процесе изучения. Прочитал что ArrayList ефективнее Vector. Прочитал, что он автоматически коректирует свою емкость както на нижнем уровне (как я понял ниже чем Vector изза чего и выиграш в производительности). Также прочитал что можно задать его емкость
 
Код:
ArrayList(int initialCapacity)
ensureCapacity(int minCapacity)
Вот смотрю на его интерфейс и не вижу как узнать текущую емкость. Но ето още не страшно. Главное чего мне нехватает - как установить шаг добавление емкости. Ну тоесть если текущая емкость исчерпается, то обект сам ее увеличит, при етом перепишет существующие елементы в новое место. Но на сколько новая емкость будет больше прежней ? Можно ли както управлять етим делом ?
В ArrayList видимо нельзя. Нет ли уже готовых инструментов которые такое позволяют ?

ЗЫ. Прошу прощения за глупый вопрос. Уже догадался что можно в сорси посмотреть :). Увеличивает емкость в полтора раза.
Остается вопрос такой.
Нет ли уже готовых инструментов которые позволяют управлять емкостю ?
3.7K
29 января 2008 года
bioflash
169 / / 01.10.2005
В принципе ты всегда можешь вызвать метод "ensureCapacity" и задать там соответственное значение "minCapacity" - вот и будет управление ёмкостью :)

А если серьёзно, то я б не использовал ArrayList в тех случаях, где размер списка может меняться, потому что лучше тогда использовать LinkedList. Производительность тогда будет еще выше, потому что Linked List быстрее работает при итерировании по нему + час на создание нового массива в ArrayList при изменении размера будет увеличиваться при размерах самого списка.
63
29 января 2008 года
Zorkus
2.6K / / 04.11.2006
А в чем задача-то состоит? И по чему и почему ее нужно оптимизировать?
И кстати, откуда данные о такой оценке производительности ArrayList по сравнению с Vector? Мне кажется, прирост в скорости достигается за счет отказа от принудительной синхронизации, главным образом?
276
30 января 2008 года
Rebbit
1.1K / / 01.08.2005
Цитата: Zorkus
А в чем задача-то состоит?


Учится-учится-учится :)

Цитата: Zorkus
И кстати, откуда данные о такой оценке производительности ArrayList по сравнению с Vector? Мне кажется, прирост в скорости достигается за счет отказа от принудительной синхронизации, главным образом?


Данные из книги. Возможно они и не совсем достоверные. Я не експериментировал. Оптимизировать не надо. Я просто для своего розвития.

276
30 января 2008 года
Rebbit
1.1K / / 01.08.2005
Цитата: bioflash
В принципе ты всегда можешь вызвать метод "ensureCapacity" и задать там соответственное значение "minCapacity" - вот и будет управление ёмкостью :)


Ну ето врапер надо делать чтоб помнить прежнюю емкость.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог