: ArrayList, Vector, Stack, LinkedList
ArrayList, Vector : 크기 확장이 가능한 배열
ArrayList의 객체는 여러 명이 달려들어 값을 변경하려고 하면 문제가 발생하지만
Vector은 그렇지 않다.
ArrayList는 Thread safe하지 않고 Vector은 Thread safe하다.
Stack : Vector 클래스를 확장하여 만들었다.
LIFO(List in First Out)를 지원하기 위해.
LinkedList : List에 속하면서 Queue에도 속한다.
ArrayList
: Object -> AbstarctCollection<E> -> AbstractList<E> -> Arraylist<E>
: ArrayList에서 구현한 각 인터페이스
-> Serializable, Cloneable, Iterable<E>, Colleciton<E>, List<E>, RandomAccess
indexOf () : 앞에서부터 찾을때
lastIndexOf() : 뒤에서부터 찾을 때
toArray() : 객체에 있는 데이터들을 배열로 뽑아낼 때 사용
-> toArray()는 리턴 타입이 Object[]이므로 toArray(T[] a)를 사용하는것이 좋다.
String[] strList = list.toArray(new String[0]);
removeAll()사용
ArrayList<String> temp = new ArrayList<String>();
temp.add("A");
list.removeAll(temp); (removeAll(Collection<?> c)
ArrayList를 여러 쓰레드에서 덤벼도 안전하게 만들려면 아래와 같이 객체 생성
Stack 클래스
: Object -> AbstractCollection<E> -> AbstractList<E> -> Vector<E> -> Stack<E>
: 구현한 인터페이스는 ArrayList와 동일
peek() : 객체의 가장 위에 있는 데이터를 리턴한다.
pop () : 객체의 가장 위에 있는 데이터를 지우고, 리턴한다.
push(E item) : 매개 변수로 넘어온 데이터를 가장 위에 저장한다.
search(Object o) : 매개 변수로 넘어온 데이터의 위치를 리턴한다.
댓글 없음:
댓글 쓰기