태그 보관물: map

Java Collection

Collection은 레퍼런스 타입들을 유지하기 위한 메카니즘이다.
Java는 대충 아래의 클래스들로 구성이 되어 있습니다. 추가적으로 java.util.concurrent 패키지에 확장 Collection 클래스들도 있습니다.

Collection : 가장 상위 인터페이스
 + Set : 중복요소가 없는 컬렉션으로, 하위 인터페이스로 SortedSet이 있습니다.
 + List : 순서가 있는 컬렉션으로, 인덱스로 위치를 지정하여 값을 찾을 수 있습니다.
 + Queue : FIFO의 구조로 객체를 유지하는 컬렉션으로, 하위 인터페이스는 BlockingQueue가 있습니다.
 + Map : 키를 값에 매핑 하는 컬렉션으로, 중복키를 허용하지 않는다. 하위 인터페이스들은 ConcurrentMap, SortedMap이 있습니다.

Set
– AbstractSet, CopyOnWriteArraySet, EnumSet, HashSet, JobStateReasons, LinkedHashSet, TreeSet

List
– AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, Stack, Vector

Queue
– AbstractQueue, ArrayBlockingQueue, ConcurrentLinkedQueue, DelayQueue, LinkedBlockingQueue, LinkedList, PriorityBlockingQueue, PriorityQueue, SynchronousQueue

Map
– AbstractMap, Attributes, AuthProvider, ConcurrentHashMap, EnumMap, HashMap, Hashtable, IdentityHashMap, LinkedHashMap, PrinterStateReasons, Properties, Provider, RenderingHints, TabularDataSupport, TreeMap, UIDefaults, WeakHashMap

java.util.Map Iteration

일반적으로 java.util.Map 인터페이스를 구현하고 있는 Map 시리즈들은 기본적으로 Key, Value 형태를 띄고 있습니다.

물론 Key를 기준으로 해서 Value Object를 넣고 빼고 하겟죠?? ㅋㅋ

하지만, loop 이슈가 있을때는 기존의 for문 등을 사용할 수 없는 단점이 있습니다.

그래서, loop를 하기 위해서는 iterator를 사용하면 됩니다. ^^

* iterate keys of the Map

for (Iterator iter = thisMap.keySet().iterator(); it.hasNext();) {
Object key = iter.next();
}

* iterate values of the Map

for (Iterator iter = thisMap.values().iterator(); it.hasNext();) {
Object value = iter.next();
}

* get the value for each key

for (Iterator iter = thisMap.keySet().iterator(); it.hasNext();) {
Object key = iter.next();
Object value = thisMap.get(key);
}