Collection 이란
- 자바에서 컬렉션 프레임워크란,즉, 데이터를 저장하는 자료구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해놓은 것.
- 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미한다.
- 기본형 변수가 아닌 참조형 변수를 저장한다!
- List : 순서가 있는 데이터 집합
- 배열과 비슷하다. (다른 점은 최초의 길이를 몰라도 가능 -> 동적 배열이라 크기가 가변적으로 변해서 가능)
- 중복을 허용
- ArrayList
// 선언
ArrayList <데이터 타입 T> list = new ArrayList<데이터 타입 T>();
// 값 추가
list.add(10)
list.add(20)
// 값 얻어오기
list.get(1) // 20, 1은 인덱스 값
// 값 변경
list set(1,30)
list.get(1) //30
// 값 삭제
list.remove(1)
//값 전체 삭제
list.clear();
- LinkedList
- 기본적인 기능은 ArrayList 와 동일
- 값을 메모리의 빈 곳에 나눠서 저장한다
- 따라서 조회하는 속도는 느리지만 값을 추가하거나 삭제할 때는 빠르다!
// 선언
LinkedList <데이터 타입 T> list = new LinkedList<데이터 타입 T>();
// 값 추가
list.add(10)
list.add(20)
// 값 얻어오기
list.get(1) // 20, 1은 인덱스 값
// 값 변경
list set(1,30)
list.get(1) //30
// 값 삭제
list.remove(1)
//값 전체 삭제
list.clear();
- Queue : 한쪽에서 데이터를 넣고 반대쪽에서 데이터를 빼는 집합
// 선언
// 큐는 생성자가 없는 인터페이스
Queue <데이터 타입 T> q = new LinkedList<데이터 타입 T>();
// 값 추가
q.add(10);
q.add(20);
q.add(30);
// top 값 조회
st.peek() // 가장 처음에 들어간 값 10
// 값이 삭제되며 출력
st.poll(); // 10
- Stack : 가장 나중에 들어간게 가장 먼저 나오는 구조의 집합
// 선언
Stack <데이터 타입 T> st = new Stack<데이터 타입 T>();
// 값 추가
st.push(10);
st.push(20);
st.push(30);
// top 값 조회
st.peek() // 가장 마지막에 들어간 값 30
// 값이 삭제되며 출력
st pop(); // 30
- Set : 순서가 없는 데이터의 집합
- 중복을 허용하지 않음
-
| 메소드 |
설명 |
boolean add(Object o) boolean addAll(Collection c) |
지정된 객체 또는 Collection의 객체들을 Collection에 추가 |
| void clear() |
Collection의 모든 객체를 삭제 |
| boolean isEmpty() |
Collection이 비어있는지 확인 |
| int size() |
Collection에 저장된 객체의 개수 |
| Object [] toArray() |
Collection에 저장된 객체를 배열로 변환 |
| boolean contains(Object o) |
Collection에 o 요소를 포함하고 있는지 반환 |
| Iterator<E> iterator() |
Collection에 저장된 데이터를 반복출력하기 위한 Iterator 인터페이스 반환 |
boolean remove(Object o) boolean removeAll(Collection c) |
지정된 객체 또는 Collection에 포함된 객체들을 삭제 |
- Map : 순서가 없는 (Key, Value) 쌍으로 이루어진 데이터 집합
- Key 값은 중복을 허용하지 않음
-
| 메소드 |
설명 |
put(Object key, Object value) putAll(Map m) |
key와 그에 해당되는 value 객체를 저장 |
| V get(key) |
key에 해당되는 value 반환 |
| V remove(key) |
key에 해당되는 value 삭제 |
| void clear() |
Map의 모든 객체 삭제 |
| boolean isEmpty() |
Map이 비어있는지 확인 |
| int size() |
Map에 저장된 객체의 개수 |
| Set<K> keySet() |
Map에 저장된 모든 key를 Set에 저장해서 반환 |
| Set<Entry<K,V>> entrySet() |
Map에 저장된 모든 key와 value를 Entry(key와 value의 결합) 타입으로 Set에 저장해서 반환 |
| Collection<V> values() |
Map에 저장된 모든 value를 Collection으로 반환 |
| boolean containsKey(key) |
Map에 지정된 key가 있는지 boolean 반환 |
| boolean containsValue(value) |
Map에 지정된 value가 있는지 boolean 반환 |
추가로 배운점
String 과 char 배열과의 간단한 변경
//String -> char[]
char[] strCharArray = str.toCharArray();
//char[] - > String
String s = new String(strCharArray);