본문 바로가기

Wanna be a Programmer/Java Programming

Java Programming - Map, Iterator


Map


- Key : 중복을 허용하지 않는다. 같은 Key-object 값을 추가할 경우에 Replace 처리

- Value 값 : 중복을 허용한다. index를 통해 값을 구분하는 리스트처럼 mapKey값을 통해 구분을 하기 때문에 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);

}

SetIteratortype으로서의 Interface이다.