Вектор в Java
Java-векторы обычно используются вместо массивов, поскольку они автоматически расширяются при добавлении новых данных. Это означает, что экземпляры Vector, такие как связанные списки, могут динамически расти. Однако размер вектора может увеличиваться или уменьшаться по мере необходимости для размещения и удаления элементов после создания вектора.
// Создаем вектор с начальным размером по умолчанию Vector vcTr = new Vector();
// Создаем вектор с начальным размером Vector vcTr = new Vector(300);
Значение Vector по умолчанию удваивает размер его массива, в то время как ArrayList увеличивает его размер массива на 50 процентов. В зависимости от того, как вы используете эти классы, вы можете получить большой удар производительности при добавлении новых элементов. Каждый вектор пытается оптимизировать управление хранилищами, поддерживая емкость и емкость. Емкость всегда не меньше размера вектора; он обычно больше, потому что, поскольку компоненты добавляются к вектору, хранилище вектора увеличивается в кусках размера CapacityIncrement. Приложение может увеличить пропускную способность вектора перед вставкой большого количества компонентов; это уменьшает количество инкрементного перераспределения.
Vector(int initialCapacity, int capacityIncrement);
Класс Vector является потокобезопасным. Это означает, что если один поток работает над Vector, ни один другой поток не сможет его удержать. В отличие от ArrayList, только один поток может выполнять операцию по вектору за раз. ArrayList не синхронизирован, что означает, что в ArrayList одновременно могут работать несколько потоков. Таким образом, вы не получите исключение ConcurrentModificationException. Если потоковая реализация не нужна, рекомендуется использовать ArrayList вместо Vector.
Следующая программа Java иллюстрирует несколько методов, поддерживаемых этой Framework Vector Vector:
import Java.util.*; class TestClass { public static void main (String[] args) throws Java.lang.Exception { // создаем новый векторный объект Vector vcTr = new Vector(); System.out.println("Vector Size: " + vcTr.size()); // начальный размер равен 2, приращение равно 2 vcTr = new Vector(2,2); System.out.println("Vector Size: " + vcTr.size()); vcTr.addElement("Sunday"); vcTr.addElement("Monday"); vcTr.addElement("Wednesday"); System.out.println("Vector Size: " + vcTr.size()); System.out.println("Vector Capacity: " + vcTr.capacity()); // здесь вы можете увеличить емкость в 4 раза // использование Итератора для просмотра всех элементов в векторе Iteratoritr = vcTr.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } // добавление элемента по указанному индексу vcTr.add(2,"Tuesday"); // использование Enumeration для перечисления всех элементов в векторе Enumeration enm = vcTr.elements(); while(enm.hasMoreElements()){ System.out.println(enm.nextElement()); } // Отображение первого элемента из Vector System.out.println(vcTr.firstElement()); // Отображение последнего элемента из вектора System.out.println(vcTr.lastElement()); // Извлечение векторных элементов по индексу System.out.println(vcTr.get(2)); // Поиск элемента в Vector if(vcTr.contains("Monday")) System.out.println("Item Found"); // Удаление одного элемента из Vector vcTr.remove(1); System.out.println(vcTr); // Удаление всех элементов из вектора vcTr.clear(); // Check Vector пуст или нет. if(vcTr.isEmpty()) System.out.println("Vector Empty !!"); else System.out.println("Vector Contains: " + vcTr.size() + " elements !!"); } }