● java.util. 컬렉션 프레임 워크
프로그램을 작성한다는 것은 무엇일까?
프로그램은 데이터를 일정한 규칙에 맞춰 가공하는 일련의 과정으로 볼 수 있다. 물론 어떻게 가공하는 지도 중요하겠지만 데이터를 관리하기 위한 방법 역시 프로그램에서 중요한 요소이다.
자바에서는 이런 데이터를 개발자가 쉽게 이용할 수 있도록 다양한 클래스 형태로 제공하는데 이들을 컬렉션 클래스 혹은 just 컬렉션이라 라고 부른다.
프레임 워크란? ->만들고자하는 구조물의 기본골격 쓰이는 상황에 따라 다양한 의미를 가지는 용어로 어플리케이션(자바) 프레임워크에서는 물리적인 실체이면서 반제품 성격의 구체적이고 체계화된 API를 제공하는 개념. 즉, 자바 프레임 워크 = 라이브러리(클래스) + 디자인 패턴(가이드라인) 더욱 자세히 알아보기 -> -http://blog.naver.com/itstaredu?Redirect=Log&logNo=150093518127- |
컬렉션 프레임워크는 컬렉션 클래스을 쉽게 이해하고 사용하도록 다형성을 이용해서 컬렉션 객체의 메소드를 형태적으로 동일하게 유지함으로써 사용법을 일관되게 만든 디자인 패턴(가이드라인) 이다.
※ Map 인터페이스는 Collection 인터페이스를 직접 확장한 것은 아니지만 Map도 컬렉션 프레임워크에 포함되는 것으로 간주한다. 따라서 Map도 그냥 컬렉션이라고 부른다.
1. 컬렉션 클래스
Data의 관리를 위해서 예전에는 배열 혹은 구조체(C언어)을 사용하였지만 자바에서는 발전된 형태인 배열을 사용하는데 이것이 바로 컬렉션 클래스(Interface Collection와 Map으로 구현된 클래스를 가리킨다.)이다.
컬렉션은 배열의 크기를 동적으로 늘릴 수 없다는 단점을 보완해서, 동적으로 필요할 때 메모리를 확장할 수 있게 만들었다. 이러한 저장공간에 여러가지 자료구조적인 기능이 가미된 저장공간으로서 객체의 삽입, 삭제, 수정, 검색의 기능을 가지고 있다.
1.2 Interface Collection
Collection 인터페이스로부터 구현된 클래스들은 다음 그림과 같다. 이 인터페이스의 기본적인 기능을 바탕으로 조금씩 확장되어 다양한 기능이 첨가된 클래스들을 제공된다. 보통은 집합적인 데이터를 관리하기 위해서 사용된다.
Collection 인터페이스를 구현한 클래스에서는 각각의 기능의 기능에 맞게 오버라이딩되어 있기 때문에 이들 메소들의 사용법을 잘 익혀두면 컬렉션 클래스를 보다 쉽게 사용할 수 있다.
>> Collection 인터페이스의 주요 메서드
Method Summary | |
boolean |
add(E e) 요소가 몇 개 들었는지 반환 |
void |
clear() 컬렉션의 모든 요소를 제거 |
boolean |
contains(Object o) |
boolean |
containsAll(Collection<?> c) |
boolean |
isEmpty() |
iterator() | |
boolean |
remove(Object o) |
boolean |
removeAll(Collection<?> c) |
int |
size() |
Object[] |
toArray() |
1.2 Interface Map
Map 인터페이스로 구현된 클래스는 다음 그림과 같다. Collection과 달리 Map은 검색적인 개념을 담고 있는 인터페이스이다. 검색을 위해서 각각의 데이터에 키를 함께 보유하게 된다. Map 인터페이스는 검색적인 저장공간을 지원하기 위해서 사용하는 경우가 많다.
Collection 이나 Map은 객체의 저장공간을 위한 기능적인 측면을 담당한다는 것은 동일하다. 하지만 Collection은 단순히 집합적인 개념의 저장소의 기능을 가지고 있으며, Map은 키를 이용한 검색적인 저장소의 기능을 가지고 있다는 것이 다르다.
특별한 기능은 없다. 데이터를 삽입하고 필요할 때 끄집어 낼 수 있으며 그것으로 끝이다. 키 없이 단순히 데이터만을 넣어 두고자 할 때는 Collection 계열을 사용하면 된다. 키를 사용해서 데이터를 빠르게 검색하기 위해서는 Map 계열을 사용하면 된다.
>> Map 인터페이스의 메서드
Method Summary | |
void |
clear() |
boolean |
containsKey(Object key) |
boolean |
containsValue(Object value) |
entrySet() | |
get(Object key) | |
keySet() | |
put(K key, V value) | |
void |
putAll(Map<? extends K,? extends V> m) |
remove(Object key) | |
int |
size() |
values() |
'Language > Java' 카테고리의 다른 글
[Java] Static Method(정적 메소드) (0) | 2014.07.13 |
---|---|
java 자료형 형변환 (0) | 2013.08.28 |
JNI - GetStringUTFChars (0) | 2013.06.09 |
jni lib를 static block에서 로드하는 이유 (0) | 2013.06.09 |
jni so파일 링크 (0) | 2013.06.08 |