2013년 6월 1일 토요일

List 인터페이스

List 인터페이스를 구현한 클래스
    : 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) : 매개 변수로 넘어온 데이터의 위치를 리턴한다.

 

댓글 없음:

댓글 쓰기