Java 컬렌션 프레임워크의 상속구조
컬렉션은 객체의 그룹을 표현하는 객체
컬렉션은 java.util.Collection 인터페이스를 상속 받는 여러 인터페이스들이 있다.
대표적으로 List, Set, Queue가 있다.
인터페이스 | 구현클래스 | 특징 |
---|---|---|
Set | HashSet, TreeSet | 순서를 유지하지 않는 데이터의 집합으로 데이터의 중복을 허용하지 않는다. |
List | LinkedList, Vector, ArrayList | 순서가 있는 데이터의 집합으로 데이터의 중복을 허용한다. |
Queue | LinkedList, PriorityQueue | List와 유사 |
Map | Hashtable, HashMap, TreeMap | 키(Key), 값(Value)의 쌍으로 이루어진 데이터으 집합으로,순서는 유지되지 않으며 키(Key)의 중복을 허용하지 않으나 값(Value)의 중복은 허용한다. |
순서를 유지하지 않는 데이터의 집합으로 데이터의 중복을 허용하지 않는다.
HashSet
Ex)
import java.util.*;
public class HashSetEx {
public static void main(String args[])
{
// HashSet 선언 및 데이터 입력
HashSet<String> hash = new HashSet<String>();
hash.add("Hello");
hash.add("World");
hash.add("Hello");
hash.add("JAVA");
hash.add("Funny");
// Traversing elements
Iterator<String> itr = hash.iterator();
while (itr.hasNext()) {
System.out.println(itr.next());
}
}
}
출력결과
Hello
Funny
World
JAVA
TreeSet
순서가 있는 데이터의 집합으로 데이터의 중복을 허용한다.
LinkedList
Vector
ArrayList
Ex)
import java.io.*;
import java.util.*;
class ArrayList {
public static void main(String[] args)
{
// ArrayList 선언
ArrayList<Integer> arrayli
= new ArrayList<Integer>();
// ArrayList에 데이터 입력
for (int i = 1; i <= 5; i++)
arrayli.add(i);
// 결과 출력
System.out.println(arrayli);
// 3번 데이터 제거
arrayli.remove(3);
// 결과 출력
System.out.println(arrayli);
// 하나씩 가져와서 결과 출력
for (int i = 0; i < arrayli.size(); i++)
System.out.print(arrayli.get(i) + " ");
}
}
출력결과
[1, 2, 3, 4, 5]
[1, 2, 3, 5]
1 2 3 5
키(Key), 값(Value)의 쌍으로 이루어진 데이터으 집합으로,
순서는 유지되지 않으며 키(Key)의 중복을 허용하지 않으나 값(Value)의 중복은 허용한다.
Hashtable
HashMap
TreeMap
Ex)
import java.util.*;
public class HashMapEx {
public static void main(String args[])
{
// HashMap 선언 및 데이터 입력
HashMap<Integer, String> hm
= new HashMap<Integer, String>();
hm.put(1, "Hello");
hm.put(2, "World");
hm.put(3, "JAVA");
// 첫 번째 결과 출력
System.out.println("1" + hm.get(1));
// 전체 결과 출력
for (Map.Entry<Integer, String> e : hm.entrySet())
System.out.println(e.getKey() + " " + e.getValue());
}
}
출력결과
1 Hello
1 Hello
2 World
3 JAVA