른록노트
[DataStructure] Vector (Java) 본문
Vector
Module java.base
Package java.util
Class Vector<E>
java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractList<E>
java.util.Vector<E>
Type Parameters:
E - Type of component elements
All Implemented Interfaces:
Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, RandomAccess
Direct Known Subclasses:
Stack
public class Vector<E>
extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, Serializable
설명
Vector는 ArrayList처럼 자동으로 배열 사이즈를 늘려주는 오브젝트입니다.
integer index로 컴포넌트에 접근 할 수 있으며 Vector의 크기는 Vector가 생성된 후 add와 remove를 동작 하기위해 필요에 따라 커지거나 줄어들 수 있습니다.
iterator 및 listIterator 메서드에 의해 반복해서 차례대로 반환할 수 있습니다.
iterator 작업을 할 때 add나 remove를 할 경우 ConcurrentModificationException이 발생합니다.(완벽하게 감지하지는 못함)
동기화처리가 다 되어있어 ArrayList보다 속도가 떨어집니다.
동시성 처리를 하지 않을경우는 ArrayList를 사용하는게 좋습니다.
메서드
void add(int index, E element)
이 Vector의 지정된 위치에 지정된 요소를 삽입합니다.
boolean add(E e)
지정된 요소를 이 Vector의 끝에 추가합니다.
boolean addAll(int index, Collection<? extends E> c)
지정된 Collection의 모든 요소를 이 Vector의 지정된 위치에 삽입합니다.
boolean addAll(Collection<? extends E> c)
지정된 Collection의 모든 요소를 지정된 Collection의 Iterator에서 반환된 순서대로 이 Vector의 끝에 추가합니다.
void addElement(E obj)
지정된 구성 요소를 이 벡터의 끝에 추가하여 크기를 1만큼 늘립니다.
int capacity()
이 벡터의 현재 용량을 반환합니다.
void clear()
이 Vector에서 모든 요소를 제거합니다.
Object clone()
이 벡터의 클론을 반환합니다.
boolean contains(Object o)
이 벡터에 지정된 요소가 포함되어 있으면 true를 반환합니다.
boolean containsAll(Collection<?> c)
이 Vector에 지정된 Collection의 모든 요소가 포함되어 있으면 true를 반환합니다.
void copyInto(Object[] anArray)
이 벡터의 구성 요소를 지정된 배열에 복사합니다.
E elementAt(int index)
지정된 인덱스의 구성 요소를 반환합니다.
Enumeration<E> elements()
이 벡터의 구성 요소의 enumeration를 반환합니다.
void ensureCapacity(int minCapacity)
필요한 경우 최소 용량 인수로 지정된 구성 요소 수 이상을 보유할 수 있도록 이 벡터의 용량을 늘립니다.
boolean equals(Object o)
지정된 Object를 이 Vector와 동일한지 비교합니다.
E firstElement()
이 벡터의 첫 번째 구성 요소(인덱스 0의 항목)를 반환합니다.
void forEach(Consumer<? super E> action)
모든 요소가 처리되거나 작업이 예외를 throw할 때까지 Iterable의 각 요소에 대해 지정된 작업을 수행합니다.
E get(int index)
이 Vector의 지정된 위치에 있는 요소를 반환합니다.
int hashCode()
이 Vector의 해시 코드 값을 반환합니다.
int indexOf(Object o)
이 벡터에서 지정된 요소가 처음 나타나는 인덱스를 반환하거나 이 벡터에 요소가 포함되어 있지 않으면 -1을 반환합니다.
int indexOf(Object o, int index)
이 벡터에서 지정된 요소가 처음으로 나타나는 인덱스를 반환하고 인덱스에서 앞으로 검색하거나 요소를 찾을 수 없으면 -1을 반환합니다.
void insertElementAt(E obj, int index)
지정된 인덱스에서 이 벡터의 구성 요소로 지정된 개체를 삽입합니다..
boolean isEmpty()
이 벡터에 구성 요소가 없는지 테스트합니다.
Iterator<E> iterator()
이 목록의 요소에 대한 반복자를 적절한 순서로 반환합니다.
E lastElement()
벡터의 마지막 구성 요소를 반환합니다.
int lastIndexOf(Object o)
이 벡터에서 지정된 요소가 마지막으로 발생한 인덱스를 반환하거나 이 벡터에 요소가 없으면 -1을 반환합니다.
int lastIndexOf(Object o, int index)
이 벡터에서 지정된 요소가 마지막으로 발생하는 인덱스를 반환하고 인덱스에서 역방향으로 검색하거나 요소를 찾을 수 없으면 -1을 반환합니다.
ListIterator<E> listIterator()
이 목록의 요소에 대한 목록 반복자를 적절한 순서로 반환합니다.
ListIterator<E> listIterator(int index)
목록의 지정된 위치에서 시작하여 이 목록의 요소에 대한 목록 반복자를 적절한 순서로 반환합니다.
E remove(int index)
이 Vector의 지정된 위치에 있는 요소를 제거합니다..
boolean remove(Object o)
이 Vector에서 지정된 요소의 첫 번째 항목을 제거합니다. Vector에 요소가 포함되어 있지 않으면 변경되지 않습니다.
boolean removeAll(Collection<?> c)
지정된 Collection에 포함된 모든 요소를 이 Vector에서 제거합니다.
void removeAllElements()
이 벡터에서 모든 구성 요소를 제거하고 크기를 0으로 설정합니다.
boolean removeElement(Object obj)
이 벡터에서 인수의 첫 번째(가장 낮은 인덱스) 항목을 제거합니다.
void removeElementAt(int index)
지정된 인덱스에서 구성 요소를 삭제합니다.
boolean removeIf(Predicate<? super E> filter)
주어진 술어를 만족하는 이 컬렉션의 모든 요소를 제거합니다.
protected void removeRange(int fromIndex, int toIndex)
이 목록에서 인덱스가 fromIndex(포함)와 toIndex(배타적) 사이에 있는 모든 요소를 제거합니다.
void replaceAll(UnaryOperator<E> operator)
이 목록의 각 요소를 해당 요소에 연산자를 적용한 결과로 바꿉니다.
boolean retainAll(Collection<?> c)
지정된 Collection에 포함된 이 Vector의 요소만 유지합니다.
E set(int index, E element)
이 Vector의 지정된 위치에 있는 요소를 지정된 요소로 바꿉니다.
void setElementAt(E obj, int index)
이 벡터의 지정된 인덱스에 있는 구성 요소를 지정된 개체로 설정합니다.
void setSize(int newSize)
이 벡터의 크기를 설정합니다.
int size()
이 벡터의 구성 요소 수를 반환합니다.
Spliterator<E> spliterator()
이 목록의 요소에 대해 지연 바인딩 및 페일패스트 분할기를 만듭니다.
List<E> subList(int fromIndex, int toIndex)
fromIndex(포함)와 toIndex(배타) 사이의 이 목록 부분의 보기를 반환합니다
Object[] toArray()
이 Vector의 모든 요소를 올바른 순서로 포함하는 배열을 반환합니다.
<T> T[] toArray(T[] a)
이 Vector의 모든 요소를 올바른 순서로 포함하는 배열을 반환합니다. 반환된 배열의 런타임 유형은 지정된 배열의 런타임 유형입니다.
String toString()
각 요소의 문자열 표현을 포함하는 이 Vector의 문자열 표현을 반환합니다.
void trimToSize()
이 벡터의 용량을 벡터의 현재 크기로 자릅니다.
사용법
import java.util.Vector;
public class VectorMain {
public static void main(String[] args){
Vector vector = new Vector();
vector.add("test1");
vector.add("test2");
vector.add("test3");
System.out.println(vector.contains("test1"));
System.out.println(vector.get(0));
System.out.println(vector.set(1,"test4"));
System.out.println(vector.get(1));
System.out.println(vector.indexOf("test3"));
vector.remove(0);
}
}
/* 결과
true
test1
test2
test4
2
*/
시간복잡도
n개의 요소에서 add할때 = 보통은 O(1)이지만 최악의 경우 배열을 새로 만들어서 복사할 때는 O(n)
n개의 요소에서 get할때 = O(1)
참고링크
공간복잡도
반응형
Comments