Разница между Arraylist и Vector

Разница между Arraylist и Vector
Разница между Arraylist и Vector

Видео: Разница между Arraylist и Vector

Видео: Разница между Arraylist и Vector
Видео: Уроки Java - №41 ArrayList, LinkedList и Vector. В чём разница? 2024, Май
Anonim

Arraylist против вектора

Arraylist можно рассматривать как динамический массив, размер которого может увеличиваться. По этой причине программисту не нужно знать размер arrayylist, когда он / она определяет его. Вектор также можно рассматривать как массив, размер которого может увеличиваться. Векторы можно легко выделить и использовать, когда требуемый размер хранилища неизвестен до времени выполнения.

Что такое Arraylist?

Arraylist можно рассматривать как динамический массив, размер которого может увеличиваться. Следовательно, Arraylist идеален для использования в ситуации, когда вы не знаете размер элементов, требуемых во время объявления. В Java массивы могут содержать только объекты, они не могут содержать примитивные типы напрямую (вы можете поместить примитивные типы внутри объекта или использовать классы-оболочки примитивных типов). Как правило, Arraylist предоставляет методы для вставки, удаления и поиска. Временная сложность доступа к элементу составляет o (1), в то время как вставка и удаление имеют временную сложность o (n). В Java по массивам можно перемещаться с помощью циклов foreach, итераторов или просто с помощью индексов. В Java Arraylist появились в версии 1.2, и они являются частью Java Collections Framework.

Что такое вектор?

Вектор также является массивом, размер которого может увеличиваться. Векторы могут быть легко выделены и могут использоваться, когда требуемый размер хранилища неизвестен до времени выполнения. Векторы также могут содержать только объекты и не могут содержать примитивные типы. Векторы синхронизированы, поэтому их можно безопасно использовать в многопоточных средах. В векторах есть методы для добавления объектов, удаления объектов и поиска объектов. Подобно arrayylist в java, векторы можно перемещать с помощью циклов foreach, итераторов или просто с помощью индексов. Когда дело доходит до Java, векторы были включены с первой версии Java.

В чем разница между Arraylist и Vector?

Хотя и массивы, и векторы очень похожи на динамические массивы, которые могут увеличиваться в размере, у них есть некоторые важные различия. Основное различие между массивами и векторами заключается в том, что векторы синхронизированы, тогда как массивы не синхронизированы. Поэтому использование массивов в многопоточных средах не подходит, в то время как векторы можно безопасно использовать в многопоточных средах (поскольку они потокобезопасны). Но синхронизация векторов приведет к снижению производительности. Поэтому было бы не очень хорошей идеей использовать векторы в однопоточной среде. Внутри и массивы, и векторы используют массивы для хранения объектов. Когда текущего пространства недостаточно, векторы удваивают размер своего внутреннего массива, а массивы массивов увеличивают размер своего внутреннего массива на 50%. Но при использовании как массивов, так и векторов, задав подходящую начальную емкость, можно избежать ненужного изменения размера внутреннего массива. В ситуации, когда скорость роста данных известна, использование векторов было бы более подходящим, поскольку можно было бы определить инкрементное значение векторов.

Рекомендуем: