English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Java

Java Управление потоком

Java Массивы

Java Ориентированность на объекты (I)

Java Ориентированность на объекты (II)

Java Ориентированность на объекты (III)

Обработка исключений Java

Java Список (List)

Java Queue (очередь)

Java Map-сборники

Java Set-сборники

Java Вход/Выход (I/O)

Java Reader/Writer

Другие темы Java

Vector (Вектор) Java

В этом руководстве мы изучим класс Vector и как им пользоваться. Мы также изучим его различия с классом ArrayList и почему我们应该 перейти на список.

Класс Vector является реализацией интерфейса List и позволяет нам создавать аналогичныеArrayListкласс подвижного массива.

Java вектор (vector) и ArrayList

В Java ArrayList и Vector реализуют интерфейс List и предоставляют одинаковые функции. Однако, между ними есть некоторые различия.

Класс Vector синхронизирует каждую отдельную операцию. Это означает, что каждый раз, когда мы хотим выполнить某些 операции с вектором, класс Vector автоматически применяет lock к этой операции.

Это потому, что когда один поток доступа к вектору, в то время как другой поток пытается доступ к нему, возникает исключение ConcurrentModificationException. Поэтому использование locks для каждой операции снижает эффективность вектора.

Но в ArrayList методы не синхронизированы. Напротив, он использует метод Collections.synchronizedList() для синхронизации всего списка.

Примечание:Поскольку вектор (vector) не является线程 безопасным и имеет низкую эффективность, рекомендуется использовать ArrayList вместо Vector.

Создание вектора (vector)

Вот как мы создаем вектор (vector) на Java.

Vector<Type> vector = new Vector<>();

Здесь, Type represents the data type stored in the vector. Например,

// создать вектор целочисленного типа
Vector<Integer> vector = new Vector<>();
// создать вектор строкового типа
Vector<String> vector = new Vector<>();

методы вектора (vector)

Класс Vector предоставляет реализацию resizable array List接口 (аналогично классу ArrayList). Некоторые методы Vector:

добавление элементов в вектор

  • add(element) - добавить элемент в вектор (vector)

  • add(index, element) - добавить элемент в указанное положение

  • addAll(vector) - добавить все элементы вектора (vector) в другой вектор

Например:

import java.util.Vector;
class Main {
    public static void main(String[] args) {
        Vector<String> mammals = new Vector<>();
        // использовать метод add()
        mammals.add("Dog");
        mammals.add("Horse");
        // использовать индекс
        mammals.add(2, "Cat");
        System.out.println("Vector: " + mammals);
        // использовать метод addAll()
        Vector<String> animals = new Vector<>();
        animals.add("Crocodile");
        animals.addAll(mammals);
        System.out.println("New Vector: " + animals);
    }
}

Результат вывода

Вектор: [Собака, Лошадь, Кот]
Новый вектор: [Крокодил, Собака, Лошадь, Кот]

Доступ к элементам вектора

  • get(index) - возвращает элемент по указанному индексу

  • iterator() - возвращает объект迭代атора для顺序ного доступа к элементам вектора

Например:

import java.util.Iterator;
import java.util.Vector;
class Main {
    public static void main(String[] args) {
        Vector<String> animals = new Vector<>();
        animals.add("Собака");
        animals.add("Лошадь");
        animals.add("Кот");
        // Использование метода get()
        String element = animals.get(2);
        System.out.println("Элемент по индексу 2: " + element);
        // Использование iterator()
        Iterator<String> iterate = animals.iterator();
        System.out.print("Вектор: ");
        while(iterate.hasNext()) {
            System.out.print(iterate.next());
            System.out.print(", ");
        }
    }
}

Результат вывода

Элемент по индексу 2: Кот
Вектор: Собака, Лошадь, Кот,

Удаление элементов из вектора

  • remove(index) - удаляет элемент по указанному индексу

  • removeAll() - удаляет все элементы

  • clear() - удаляет все элементы. Это более эффективно, чем removeAll()

Например:

import java.util.Vector;
class Main {
    public static void main(String[] args) {
        Vector<String> animals = new Vector<>();
        animals.add("Собака");
        animals.add("Лошадь");
        animals.add("Кот");
        System.out.println("Исходный вектор: " + animals);
        // Использование метода remove()
        String element = animals.remove(1);
        System.out.println("Удален элемент: " + element);
        System.out.println("New Vector: " + animals);
        // Использование метода clear()
        animals.clear();
        System.out.println("Vector after clear(): " + animals);
    }
}

Результат вывода

Начальный вектор: [Dog, Horse, Cat]
Удаленный элемент: Horse
New Vector: [Dog, Cat]
Vector after clear(): []

Другие методы вектора (vector)

МетодОписание содержимого
set()Изменение элементов вектора
size()Возврат размера вектора
toArray()Преобразование вектора в массив
toString()Преобразование вектора в строку
contains()

Поиск указанного элемента в векторе и возвращение логического значения