1. 컬렉션(Collection)이란?
- 자료구조들을 쉽게 사용할 수 있도록 인터페이스와 구현체를 제동하는 집합.
- 컬렉션을 통해 데이터 저장, 조회. 삭제, 정렬 등 다양한 기능을 구현 가능
1-1. 배결의 한계
- 배열은 크기가 고정되어 있어 한 번 설정하면 변경할 수 없음.
- 컬렉션은 길이를 동적으로 변경 가능하다.
2. 컬렉션의 종류와 특징
2-1. List 인터페이스를 구현한 ArrayList
- 요소의 순서를 유지하고 중복된 값을 저장할 수 있음
- 대표적인 구현체로는 ArrayList, LinkedList가 있다.
ArrayList<String> names = new ArrayList<>();
names.add("Spartan");
names.add("Steve");
names.add("Isac");
System.out.println("names = " + names);
names.add("Spartan");
System.out.println("names = " + names);
System.out.println("1 번째 요소 조회: " + names.get(0));
names.remove("Steve");
System.out.println("names = " + names);
2-2. Set 인터페이스를 구현한 HashSet
- 순서를 유지하지 않고 중복을 허용하지 않음
- 대표적인 구현체로 HashSet, TreeSet이 있음
HashSet<String> uniqueNames = new HashSet<>();
uniqueNames.add("Spartan");
uniqueNames.add("Steve");
uniqueNames.add("Isac");
System.out.println("uniqueNames = " + uniqueNames);
uniqueNames.get(0);
uniqueNames.add("Spartan");
System.out.println("uniqueNames = " + uniqueNames);
uniqueNames.remove("Spartan");
System.out.println("uniqueNames = " + uniqueNames);
2-3. Map 인터페이스를 구현한 HashMap
- 키(key) - 값(value) 구조로 데이터를 저장함
- 키는 중복 불가하나, 값은 중복 가능
- 순서를 보장하지 않는다.
- 대표적인 구현체로 HashMap, TreeMap이 있다.
HashMap<String, Integer> memberMap = new HashMap<>();
memberMap.put("Spartan", 15);
memberMap.put("Steve", 15);
memberMap.put("Isac", 1);
memberMap.put("John", 2);
memberMap.put("Alice", 3);
System.out.println("memberMap = " + memberMap);
memberMap.put("Alice", 5);
System.out.println("memberMap = " + memberMap);
System.out.println(memberMap.get("Steve"));
memberMap.remove("Spartan");
System.out.println("memberMap = " + memberMap);
Set<String> keys = memberMap.keySet();
System.out.println("keys = " + keys);
Collection<Integer> values = memberMap.values();
System.out.println("values = " + values);