Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
ArrayList vs CopyOnWriteArrayList
#1
к опытным кодерам - дайте небольшую справку по нюансам работы с этими классами, тоесть в каких случаях какой предпочтительнее с точки зрения производительности.

забыл добавить Vector, хотя он сам по себе является просто синхронизированным ArrayList
for(;Forum.getPostCount() < Integer.MAX_VALUE; Forum.writeNewPost()); | TERA Video | GamezTERA Emu
Ответ
#2
Ооо,сейчас я накатаю сведения ... Smile
Вообще я с коллекциями почти не работал,т.к толком не изучал их.Однако есть горький опыт в использовании класса FastTable от Javolution ... Big Grin Он меня очень привлёк одной очень полезной функцией : если в большинстве классов этого рода лист статический (т.е его размер увеличивается только при добавлении элемента и мы можем добавлять их только по порядку или заменять существующие (по индексу)),то в FastTable можно изначально выставить с помощью метода setSize(int size); размер таблицы,тем самым можно в любую свободную ячейку вставить свои данные (не прибегая к использоваию замены данных в ячейке),а остальные не заполненные будут возвращать нулевое значение Smile Но это так,к сведению,так сказать совет.А теперь по теме :
Во-первых очень советую прочитать следующую статью (особенно ближе к её концу) :
_http://www.ibm.com/developerworks/ru/library/j-jtp07233/index.html
По поводу класса Vector,могу сказать,что он действительно использует в основном только синхронизированные методы (synchronized).И такие методы считаются немного медленными по сравнению с обычными.+ ко всему он до сих пор содержит кучу старых методов для взаимодействия со старыми версиями Java .... Но самое отстойное в том,что тут возникает довольно много косяков с синхронизацией.Даже бытует мнение,что есть коосяки в самих классах явы (пакет java) - народ находит как увернутся от этого Smile
Если вы разбираетесь в английском - то советую тогда почитать полную документацию по этим классам :
Здесь - _http://java.sun.com/j2se/1.4.2/docs/api/java/util/ArrayList.html - по ArrayList.
Здесь - _http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/CopyOnWriteArrayList.html - по CopyOnWriteArrayList.
И здесь - _http://java.sun.com/j2se/1.4.2/docs/api/java/util/Vector.html - по Vector.
На последок хочу сказать,что довольно не плохой вариант - ипользовать в основном класс Collections и если требуется - другие.Т.к каждый класс содержит в себе свойства экстравагантные,т.е которые требуются в зависимости от случая.А вот что брат за основу - это надо решить первым делом.
З.Ы Хотя я не такой уж и опытный кодер,но впрочем вы можете описать,хотябы приблизительно вашу цель и можно будет попробовать реализовать это Wink
Ответ
#3
сановские доки я читал в первую очередь, мне больше было интересно мнение кодеров которые уже на своем опыте это прочуствовали.
размер в любом списке можно установить указав в конструкторе базовый размер.
for(;Forum.getPostCount() < Integer.MAX_VALUE; Forum.writeNewPost()); | TERA Video | GamezTERA Emu
Ответ
#4
Видимо здесь я промахнулся с мнением =\ Впрочем это не удивительно - знаний у меня в этой области мало,критически (
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Анализ доступа к ArrayList ALF. 20 6,180 04-06-2012, 01:21 AM
Последний пост: Azagthtot

Перейти к форуму:


Пользователи, просматривающие эту тему: 2 Гость(ей)