개발/JAVA

9일차. 와퍼(Wrapper)와 각종 배열.

Shuming 2015. 12. 2. 16:58
반응형

9일차.


  • Wrapper 클래스의 정의

    • 기본 타입(primitive datatype)을 클래스로 정의 해놓은 것.



  • Wrapper는 Stirng 처럼 primitive로도 Reference로도 사용 가능하다


  • Wrapper에 공통적으로 사용되어지는 거.

    • valueOf

      • 문자열 str에 해당하는 Wrapper 클래스의 객체반환.

    • primitive + Value()

      • 현 객체의 값을 primitive type으로 변환하여 변환


ex) public class a {

String val = "12345";

Integer i = Integer.valueOf(val);

}

i 값에 String 값을 int 타입으로 변환해서 넣어주는거.


예제.


ExamWrapper.class







****참조 String 에서 trim 값.

  • 공백문자를 지워주는 trim. 예제를 통해 알아보자







실행결과 화면.













각종배열.






  • ArryList

배열의 업그레이드 판이라 보면 됨. Vevtor 랑 거의 흡사.




ArrayListTest.class

*class 명에 ArrayList.class로 지정된다면. ArrayList 호출시에 사용자가 지정한 pakage 부터 찾는다.
(너무 당연한가..?)










  • Vector 클래스.


    • VS Array

    • 배열은 여러 데이터를 쉽게 하나의 묶을 수 있지만.

    • 배열의 “크기” 는 생성 된 뒤에는 변경될 수 없다.

    • 같은종류의 데이터만 배열에 포함 될 수 있다

.

  • Vector -

    • 배열과 비슷하지만 !! 다른 종류의 데이터형을 가진 데이터르 저장가능.

    • 데이터가 가득 차면 자동으로 저장공간을 증가시킴.




api


java.util.Vector<E>


Vector()

기본적으로 벡터는 10개 생성한다잉


Vector(int initialCapacity)

생성시에 내가 원하는 값만큼 생성. int 값으러


Vector(int initialCapacity, int capacityIncrement)

내가 ~이만큼 만드는데, 증가할때 마다 ~만큼씩





여기서 잠깐! vector 예제를 보기전에 이뮬레이션이랑 이터레이터를 알고가자.


+ Enumeration 과 Iterator !



  • Enumerations <E>

  • 생성자는 없다. (즉 new로 호출 안댐)

  • 어떤 요소가 들어갔다! 라고 <E> 가 알려줌.

  • <> 데이터 형태를 고정시키는 .제너럴타입


boolean hasMoreElements()

  • elements 가 있는지 알아온다

E nextElement()

  • 값이 있다면 true반환해준다.




  • Iterator <E>

  • 생성자는 없다. (즉 new로 호출 안댐)

  • 어떤 요소가 들어갔다! 라고 <E> 가 알려줌.

  • <> 데이터 형태를 고정시키는 .제너럴타입


boolean hasNext()

E next()


둘이 거의 똑같음 노의미 ; 이터레이터 쓰셈 걍 ㄱ






예제


ExamVector.class









+ 추가내용


Enumeration, Iterator, ListIterator


 - 모두 컬렉션에 저장된 요소를 접근하는데 사용되는 인터페이스이다. 
 - Enumeration은 Iterator의 구버전, ListIterator는 Iterator의 기능을 향상 시킨 것이다.


Enumeration과 ListIterator 


 - Enumeration은 컬렉션 프레임워크가 만들어지기 전에 사용하던 것이다. 가능하면 Iterator를 사용하자.
 - Iterator의 경우 단방향으로만 이동가능한데 ListIterator는 양방향으로의 이동이 가능하다.      
   다만 ArrayList나 LinkedList와 같이 List인터페이스를 구현한 컬렉션에서만 사용 가능하다.



출처 : http://warmz.tistory.com/339








  • Hashtable


해시테이블이란 키(key)와 그에 해당하는 값(Value)으로 구분된 데이터 구조이다. 벡터와 달리 해시테이블은 값을 저장하고, 검색하기 위해 키로 접근함.


캡처.PNG







HashtableTest.class


















정리.

Array     |---|---|---|---|---|---|

value       |1  | 2 | 3| 4 | 5 | 6|

|---|---|---|---|---|---|

index        1   2   3   4   5   6


Array 의 경우 같은 데이터타입의 배열이 이루어지고 index 값으로 순차적으로 표현.


ArryList          |---|---|---|---|---|---|

         value          | s |  i | 3 | s | 5 | 6|

|---|---|---|---|---|---|

index 1   2   3   4   5   6


Vecter 의 경우 배열이 각기 다른 데이터로. 이루어지고 index 순차적으로 표현.




Vector |---|---|---|---|---|---|

value | s |  i | 3 | s | 5 | 6|

|---|---|---|---|---|---|

index      1   2   3   4   5   6


Vecter 의 경우 배열이 각기 다른 데이터로. 이루어지고 index 순차적으로 표현.


Hashtable     |---|---|---|---|---|---|

value     | s |  i | 3 | n | 5|  6|

|---|---|---|---|---|---|

index     a   20  b   4   c   6


Hashtable 의 경우 index 까지도 유연하게 적용된다.








반응형