Map
- Key 값 : 중복을 허용하지 않는다. 같은 Key-object 값을 추가할 경우에 → Replace 처리
- Value 값 : 중복을 허용한다. index를 통해 값을 구분하는 리스트처럼 map은 Key값을 통해 구분을 하기 때문에 Value가 중복이 되어도 상관없다.
- 메소드
* 추가, 변경 : put(Object k, Object v)
* 조회 : get(Object k) : Object(Value) → object k를 조회하면 value를 반환
* 삭제 : remove(Object k) : Object (Value) → 삭제한 object k 의 value를 반환
* Key값의 존재유무 : containsKey(Object k) : boolean
Value값의 존재유무 : containsValue(Object v) : boolean
* Key값을 조회 : keySet() : Set → Set으로 반환한다.
* entry를 조회 : entrySet() : Set-> Entry → 사용빈도가 낮다
* Clear() : 전체 삭제, size() : int(but, 사용빈도 낮음)
Entry | remove(K3); → K3의 엔트리를 삭제 containsValue(v4); → v4가 존재하기 때문에 true반환 | |
Key – Value (object) (object) | ||
K1 | v | |
K2 | v2 | |
K3 | v3 | |
K4 | v4 |
Iterator
- Java.util.Iterator (interface) Java.util.Enumeration (interface)
- 역할 : Collection 객체가 관리하는 값(객체)들을 조회
Iterator(jdk 1.2) – 조회, 삭제, Enumeration – 조회 → 웹에서 사용
→ Set, List나 형태가 다르더라도 Iterator라는 객체를 통해서 값을 조회 할 수 있다. 특히 Set은 조회를 하는 메소드가 존재하지 않기 때문에 Iterator를 통해서 값을 순차적으로 조회 할 수 있다.
* hasNext() : boolean → 가져올 값(return value)이 있는지 유무
* next() : Object -> 값 리턴, remove() : Object → 값 삭제
- Enumeration : HasmoreElements(), nextElements()
- Collection객체(Set, List).iterator() → iterator
★ Compare
배열(Array) | List(ArrayList) |
for(int idx = 0; idx < array.length; idx++) { array[idx]; } | for(int idx=0; idx<list.size(); idx++) { Object obj = list.get(idx); }
|
Set | Map |
Iterator itr = new Iterator(); while(itr.hasNext()) { Object obj = itr.next(); } | Set key = map.keySet(); Iterator itr = key.Iterator(); while(itr.hasNext()) { Object obj = itr.next(); Object value = map.get(obj); } |
※ Set과 Iterator는 type으로서의 Interface이다.
'Wanna be a Programmer > Java Programming' 카테고리의 다른 글
Java Programming - String, StringBuffer, StringBuilder, DTO (0) | 2012.07.10 |
---|---|
Java Programming - Generic(제네릭), Object, Wrapper Class (0) | 2012.07.10 |
Java Programming - Collection API, 배열 vs 컬렉션 (0) | 2012.07.04 |
Java Programming - Abstract vs Interface (0) | 2012.07.03 |
Java Programming - 의존관계(Dependency), Final (0) | 2012.07.02 |