9일차. 와퍼(Wrapper)와 각종 배열.
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
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)으로 구분된 데이터 구조이다. 벡터와 달리 해시테이블은 값을 저장하고, 검색하기 위해 키로 접근함.
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 까지도 유연하게 적용된다.