works:programmer:java:array-list-and-vector

Разница между ArrayList и Vector в Java

java.util.Vector был разработан в первой версии Java. java.util.ArrayList был введен только в версии 1.2, как часть Java Collections framework. В версии 2 платформы v1.2, вектор был переработан как инструмент для List и Vector.

Все методы Vector синхронезированны, а методы ArrayList не синхронизированны. Все новые реализации Java Collections framework не синхронизированны.

Вектор и ArrayList оба используют массив как структуру хранения данных. Они могут динамический менять размер. Разница лиш в том как они реализованны в нутри. Vector по умолчанию умножает свой размер на 2 как только достигнут предел. А вот ArrayList просто добавляет половину от своего размера.

Vector или ArrayList? Что лучше использовать в Java? В ообщем если нужен синхронизированный код, тогда лучше использовать Vector. Но в местах где требуется быстро обработать массив - то лучше использовать ArrayList, так как синзхронизация методов немного замедляет работу с кодом.

Если использовать Vector или ArrayList для больших обьемов данных, то лучше всего изначально задать размер массива, так он на порядок быстрее будет работать.

import java.util.*;
 
class Main {
 
  public static void main(String[] args)
  {
    Vector vec = new Vector();
    for (int i=0; i<10; i++) {
      vec.add(i);
    }
    ArrayList<Integer> lst = new ArrayList<>();
    for (int i=0; i<10; i++) {
      lst.add(i);
    }
 
    print(vec.toString());
    print(lst.toString());
 
    // Java8 forEach
    lst.forEach(var -> System.out.println(var)); 
 
    /*
    for (Object c: vec) {
      print(""+c);
    }
    for (Object c: lst) {
      print(""+c);
    }
    */
  }
 
  private static void print(String str)
  {
    System.out.println(str);
  }
 
}
works/programmer/java/array-list-and-vector.txt · Last modified: 2020/01/21 14:21 by Chugreev Eugene