챕터3-3 : 컬렉션(Collection)
컬렉션(Collection)이란?


배열의 한계

int[] numbers = new int[3];
numbers[0] = 10;
numbers[1] = 20;
numbers[2] = 30;
numbers[3] = 40;
선언 방법
컬렉션객체<자료형> 변수이름 = new 컬렉션객체<자료형>();
ArrayList<Integer> arrayList = new ArrayList<Integer>();
ArrayList<Integer> arrayList = new ArrayList<>();
arrayList.add(10);
arrayList.add(20);
arrayList.add(30);
arrayList.add(40);
- 배열과 다르게 컬렉션은 길이를 동적으로 변경할 수 있습니다.(추가 삭제 시 유연하게 길이가 변경됩니다.)
컬렉션 종류와 특징

List 인터페이스를 구현한 ArrayList

ArrayList<String> names = new ArrayList<>();
names.add("Spartan");
names.add("Steve");
names.add("Isac");
names.add("1");
names.add("2");
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);
Set 인터페이스를 구현한 HashSet

HashSet<String> uniqueNames = new HashSet<>();
uniqueNames.add("Spartan");
uniqueNames.add("Steve");
uniqueNames.add("Isac");
uniqueNames.add("1");
uniqueNames.add("2");
System.out.println("uniqueNames = " + uniqueNames);
uniqueNames.get(0);
uniqueNames.add("Spartan");
System.out.println("uniqueNames = " + uniqueNames);
uniqueNames.remove("Spartan");
System.out.println("uniqueNames = " + uniqueNames);
Map 인터페이스를 구현한 HashMap

// Map 을 구현한 HashMap
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);
// ✅ 조회: 15
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);