Java Collection Framework는 일반적으로 재사용 가능한 컬렉션 데이터 구조를 구현하는 클래스 및 인터페이스 세트이다.
쉽게 말해 기본적으로 배열이 적용된 구조이며, 여러개의 요소들을 저장할 수 있다.
Java Collection Framework는 크게 Set, Map, List 3가지로 나눌 수 있다.
하지만 오늘은 Map과 List 2가지만 소개하도록 하겠다.
package collection;
import java.util.ArrayList;
public class List {
public static void main(String[] args) {
// ArrayList 객체 생성
ArrayList<String> list = new ArrayList<String>();
System.out.println("현재 list 크기 : " + list.size() + "\n");
// 데이터 추가
list.add("Collection");
list.add("List");
list.add(1, "middle"); // 1번 째 인덱스에 문자열 삽입
System.out.println("현재 list : " + list + "\n");
// 데이터 추출
String str = list.get(0); // 0번 째 인덱스 문자열 추출
System.out.println(str + "\n");
// 데이터 변경
list.set(0, "Collections"); // 0번 째 인덱스 문자열 변경
System.out.println("현재 list : " + list + "\n");
// 데이터 삭제
list.remove(0); // 0번 째 인덱스 문자열 삭제
System.out.println("현재 list : " + list + "\n");
list.clear(); // 모든 데이터 삭제
System.out.println("현제 list" + list + "\n");
// 데이터 유무
boolean b = list.isEmpty();
System.out.println("list.isEmpty ? : " + b);
}
}
현재 list 크기 : 0
현재 list : [Collection, middle, List]
Collection
현재 list : [Collections, middle, List]
현재 list : [middle, List]
현제 list[]
list.isEmpty ? : true
List의 가장 큰 특징은 순서가 있다는 점이다.
이말은 즉슨 객체를 저장하는 것이 아닌, 객체의 주소를 참조한다는 것을 의미한다.
키(Key)와 값(Value)로 이루어진 데이터의 집합
키(Key) 중복 안됨, 값(Value) 중복 허용
Map에 지원되는 여러 함수(put, get, remove, clear, isEmpty)등을 사용할 수 있다.
package collection;
import java.util.HashMap;
public class Map {
public static void main(String[] args) {
// Map은 key를 사용하여 데이터를 관리함
// HashMap<key, value>
HashMap<Integer, String> map = new HashMap<Integer, String>();
System.out.println("현재 map 크기 : " + map.size() + "\n");
// 데이터 추가
map.put(0, "Collection");
map.put(1, "Framework");
map.put(2, "Map");
System.out.println("현재 map : " + map + "\n");
// 데이터 추출
String str = map.get(0);
System.out.println(str + "\n");
// 데이터 변경
map.put(0, "Collections");
System.out.println("현재 map : " + map + "\n");
// 데이터 삭제
map.remove(1);
System.out.println("현재 map : " + map + "\n");
map.clear(); // 모든 데이터 삭제
System.out.println("현재 map : " + map + "\n");
// 데이터 유무
boolean b = map.isEmpty();
System.out.println("list is Empty ? : " + b);
}
}
현재 map 크기 : 0
현재 map : {0=Collection, 1=Framework, 2=Map}
Collection
현재 map : {0=Collections, 1=Framework, 2=Map}
현재 map : {0=Collections, 2=Map}
현재 map : {}
list is Empty ? : true