티스토리 뷰

SMALL

(1) Collection 프레임워크 인터페이스의 계층구조



 Collection 인터페이스의 메소드

Collection 인터페이스는 여러가지 메소드를 포함하고 있다.
addAll() : 합집합 , removeAll() : 차집합, retainsAll() : 교집합



 Set (java.util.Set)

Set은 수학적인 의미에서의 집합을 의미하는 것으로, 중복된 요소를 허용하지 않는 자료구조이다. Set은 유일(unique)한 요소들을 유지하기 위한 곳에 많이 사용된다. Set 인터페이스를 제공하는 관련 클래스로는 TreeSet과 HashSet이 있다.

 TreeSet (java.uti.TreeSet)

TreeSet 클래스는 순서가 있는 집합을 표현하기 위해 사용되고 SortedSet 인터페이스를 포함하고 있다.


 HashSet (java.uti.HashSet)

HashSet 클래스는 AbstractSet 추상 클래스의 하위 클래스로 Set 인터페이스와 Collection 인터페이스를 포함한다.



 List (java.util.List)

List는 순차적으로 나열된 형태의 자료구조를 의미하는 것으로, 데이터 중간 어느 곳이나 데이터를 삽입하고 삭제할 수 있는 기능을 제외하고는 배열과 비슷하다. 배열은 일반적으로 생성될 때 크기가 결정되지만, List는 크기가 가변적이다. Set은 자료의 중복을 허용하지 않지만, List는 하나의 자료가 다른 자료들과 순차적 연관관계를 가지기 때문에 자료의 중복이 허용된다. List 인터페이스를 제공하는 관련 클로스로는 Vector, Stack, ArrayList, Sorted List 등이 있다.

 List 인터페이스

List 인터페이스는 Collection 인터페이스에서 제공되는 메소드외에 리스트 조작에 필요한 추가 메소드를 가지고 있다.


 Collections 클래스 (java.util.Collections)

Collections 클래스는 자바 컬렉션 프레임워크 (특히 리스트 관련 클래스)를 위한 유틸리티 클래스로 볼 수 있다. Collections 클래스는 리스트를 조작하기 위한 유용한 메소드를 제공하고 있고, 다른 클래스에서 쉽게 사용가능하도록 모든 메소드들을 static 메소드로 제공하고 있다. 아래는 Collections 클래스에서 제공되는 주요 메소드이다.


 LinkedList 클래스 (java.util.LinkedList )

LinkedList 클래스는 AbstractSequentialList 로부터 상속된 클래스로서 Collection 인터페이스와 List 인터페이스를 포함하고 있다.


 ArrayList 클래스 (java.util.ArrayList)

ArrayList 클래스는 배열로 구현되는 리스트로서 배열과 다른 점은 크기가 동적이기 때문에 사용에 따라 자동적으로 크기가 조정된다는 점이다. ArrayList 클래스는 배열로 구현된 리스트이기 때문에 요소를 조작하는 시간이 배열에 비해 많이 소요되므로 소량의 요소들을 다룰 때 적합한 클래스이다.


 Vector 클래스 (java.util.Vector)

Vector 클래스는 자바에서 제공하는 가변 길이의 배열이라 할 수 있다. Vector는 객체에 대한 참조(주소)를 가지는 배열이기 때문에 다양한 객체들이 하나의 Vector에 저장될 수 있고, 필요에 따라 자동으로 늘어나고 줄어들 수 있다.


 Enumeration 인터페이스

Enumeration 인터페이스는 객체들의 집합에서 각각의 객체들은 한순간에 하나씩 처리할 수 있는 메소드를 제공한다. Enumeration 인터페이스는 Vector 클래스에 구현되어 있기 때문에 바로 사용이 가능하다.

 Stack 클래스 (java.util.stack)

Stack은 Vector의 하위 클래스로, LIFO의 특성으로 가진다. Stack 클래스에서 제공되는 push(), pop() 등과 같은 메소드들은 상위 클래스인 Vector 클래스의 메소드들을 이용하여 구현되었다.




 Map (java.util.Map)

Map은 List, Set과는 다르게 키(key)와 값(value)으로 이루어진 자료구조를 의미하며, 다른 Collection 인터페이스로부터 상속되지 않는다. Map에 저장되는 키는 중복되지 않은 유일한 값을 가져야 한다. Map 인터페이스를 제공하는 관련 클래스로는 TreeMap, HashMap, WeakHashMap 등과 같은 클래스들이 있다.

 Hashtable 클래스 (java.util.Hashtable)

Hash 테이블은 키(key)와 값(value)의 쌍으로 이루어진 요소(element)를 저장한다. Hashtable 크래스는 이러한 테이블 구조에서 정보를 쉽게 저장하고 찾을 수 있는 기능을 제공한다. Hashtable의 모든 요소는 키값으로 입력되고 검색된다.
Hashtable 클래스에서도 Vector 클래스에서 사용한 Enumeration 인터페이스를 사용한다.


 HashMap 클래스 (java.util.HashMap)

HashMap 클래스는 Hashtable 클래스와 같은 기능을 제공한다. HashMap 클래스는 순서의 의미가 없는 맵으로서 빠른 동작(데이터 추가, 삭제)을 제공한다.



 TreeMap 클래스 (java.util.TreeMap)

TreeMap 클래스는 HashMap과는 다르게 key값이 정렬된 형태로 저장된다. 따라서 HashMap에 비해 동작(데이터 삽입, 삭제)이 느리다.



(2) Collection 인터페이스

자바에서 컬렉션 프레임워크를 제공하는 가장 중요한 목적은 어떠한 형태의 데이터이든지 데이터를 추가하고, 찾고, 삭제하는 표준화된 방법을 제공하는 것이다.



(3) Iterator 인터페이스

Iterator 인터페이스는 배열의 인덱스과 같은 역할을 한다. 컬렉션 객체 집합의 요소들은 순차적으로 처리하기 위해 주로 사용된다.



LIST
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함