Java/Theory

[Java/Theory]16. Data Structure

양승길 2016. 5. 31. 12:00

16. Data Structure

  * Vector

       배열에 있는 단점을 보완한 자료구조중 하나.

       (배열의 단점 : 관리해야 하는 Datatype은 하나뿐이다.

                         크기를 수정하거나 중간에 추가할 Data가 있으면 

                         Instance를 삭제, 생성해야 되는 불편함)

       List라는 Interface를 구현하고 있다. => Vector는 List 자료구조중 하나이다.

       List에 있는 모든 Method들이 Vector에 Override되어 있다.

       Ex 1 : 

               capacity() : 허용된 크기

               size()       : 현재 들어있는 크기

               <>         : Generic이라 부른다. 

                              특정 DataTypea만으로 List를 관리하도록 하는 Keyword.

                              add()에 들어갈 Argument는 Object다.

                              그러므로 Wrap되어 있는 Primitive Data를 포함한 

                              모든 Data Type이 들어가서 Implicit Casting된다.

                              그러나 elementAt()로 뽑아낸 DataType은 

                               Object이므로 경우에 따라 Explicit Casting해야되는 불편함이 있다.

                               두번의 Casting을 생략할 수 있도록 선언부에 <>를 추가하도록 한다.

                  

              List<DataType> A = new Vector(10, 10);

              위처럼 List만을 선언하는 이유는 

              Precondition과 Postcondition에 따라 사용이 변환될 수 있으므로 다형성을 적용시켰다.

                 

             Enhanced for문을 이용하여 <>를 사용한것과 안한것의 차이는 아래와 같다.

1
2
3
4
5
6
7
8
9
10
11
12
for(int i = 0 ; i < size() ; i ++ ){  
    // extends Vector로 되어 있는 상태. size()는 this.size()와 같다.
    System.out.println( (String) elementAt(i) );
}
 
for(Object  obj : vector){
    System.out.println( (String) obj );
}
    
for(String  obj : vector){
    System.out.println( obj );
}
cs


  * ArrayList

       List 자료구조중 하나이다.

       Vector와 유사하나 미세한 차이점이 있다.

       (List<String> vector = new Vector

        Vector는 List외에 다른 Method들이 정의되어 있어 List의 접근 범위가 벗어난다.

        따라서 Explicit Casting을 하도록 한다.)


  * Stack

       List 자료구조중 하나이다.

       peek() == top()


  * Queue

       Interface로 되어있는 자료구조.

       peek() == top()


  * Map

       key와 value가 이루어진 자료구조


  * Set

       중복을 배제하고 수학적인 의미의 객체들을 모은 자료구조

       Collections를 상속


  * SortedSet

       정렬된 값들로 이루어진 Set


  * SortedMap

       정렬된 Map