자료 구조, 동적 배열 개념인 컬렉션 프레임워크, 자료의 삽입, 삭제, 검색 등을 포함해 어떠한 자료형이라도 담을 수 있으며 크기가 자유롭게 늘어남
Set : 순서가 보장되지 않고, 데이터들의 중복을 허용하지 않음
List : 기본적으로 데이터들이 순서대로 저장되며, 중복을 허용
Map : Key와 Value로 이루어지는 데이터들의 집합, 순서가 보장되지 않고, Key값의 중복은 허용하지 않지만, Value값의 중복은 허용
순서가 보장되지 않고, 데이터들의 중복을 허용하지 않음
Set set이름 = new HashSet();
와 같은 문법으로 작성
public static void main(String[] args) {
Set set = new HashSet();
set.add("one");
set.add("second");
set.add("3rd");
set.add(new Integer(4));
set.add(new Float(5.0F));
set.add("second");
set.add(new Integer(4));
System.out.println(set);
기본적으로 데이터들이 순서대로 저장되며, 중복을 허용
List list이름 = new ArrayList();
와 같은 문법으로 작성
public static void main(String[] args) {
List list = new ArrayList();
list.add("one");
list.add("two");
list.add("3rd");
list.add(new Integer(4));
list.add(new Float(5.0F));
list.add("second");
list.add(new Integer(4));
System.out.println(list);
}
<> 안에 어떠한 타입을 미리 선언해서 해당 ArrayList
, List
등이 사용할 객체의 타입을 지정함, 해당 데이터 타입만 사용할 수 있게 해줌
class MyArray<Integer> {}
, MyArray<Integer> myArr = new MyArray<Integer>()
와 같은 문법으로 작성
for (타입 변수이름 : 배열이나 컬렉션 이름) {
반복 명령문;
}
Key와 Value로 이루어지는 데이터들의 집합, 순서가 보장되지 않고, Key값의 중복은 허용하지 않지만, Value값의 중복은 허용
map.put(2(Key값), "관우"(Value값));
밑의 예제에서는 다음과 같이 활용
Map<타입> map = new HashMap<타입>();
와 같은 문법으로 작성
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(new Integer(1), "유비"); // 자바 버전9 까지만 사용한 문법
map.put(Integer.valueOf(2), "관우"); // 문법 오류없이 작성하는 방법
map.put(3, "장비"); // 위와 같은 문법이지만, 컴파일 과정 시 자동으로 수정됨
System.out.println(map.get(new Integer(3)) + "\n");
Set<Integer> set = map.keySet();
for (Integer integer : set) {
System.out.println(integer);
System.out.println(map.get(integer));
}
}