이전에 포스팅했던
2025.04.24 - [프로그래밍언어/Java] - 자바 프로그래밍(1) - for each문
자바 프로그래밍(1) - for each문
알고리즘 공부를 하다가 for each문이 나와서 글을 작성해본다.학부에서 Java를 공부할 때 for each문을 접해본 적이 없었는데NHN 아카데미 자바 백엔드 과정을 수료하면서 처음 배웠던 기억이 있다...
fkqlaus.tistory.com
에서 Iterable에 관해 이야기할 때 Collection에 대한 내용이 나왔었다(아주 쪼끔..)
면접을 보러 갔을 때도 Collection에 관한 질문을 받은 적이 있는 만큼 잘 이해한다면 실무와 면접에서 도움이 될 거라고 생각한다.
Collection Framework가 뭔가요?
Java의 Collection Framework는 데이터를 효율적으로 저장하고 조작하기 위한 구조이다. 배열보다 유연하고, 다양한 상황에 맞게 데이터를 저장하고 처리할 수 있게 도와준다...라고 하는데 도대체 무슨 말이야?
쉽게 말하면 여러 데이터를 담는 도구 상자라고 생각하면 된다.
즉 다양한 데이터를 저장하는 그릇들(List, Set, Map 등)을 모아둔 도구 상자 또는 정리함이다. 각각의 그릇은 성격이 달라서 용도에 따라 골라 쓰면 되고, 자바에서는 그걸 효율적이고 일관된 방식으로 다룰 수 있도록 Framework 형태로 제공하는 것이다.
그럼 이걸 왜 쓰는 건가? 그냥 배열쓰면 되는 거 아니에요?라고 질문한다면 음..
배열은 크기 조절이 어렵고 유연하지 않다.
그래서 자바는 다양한 형태로 데이터를 쉽게 추가/삭제/검색할 수 있는 컬렉션 도구들을 제공한다.
Collection Framework의 구조
Iterable (반복할 수 있는 객체)
|
Collection (데이터를 모아 놓은 집합)
/ | \
List Set Queue
|
Map (별도 인터페이스 - Collection의 하위 X)
위 구조를 보면 Java Collection의 전체 큰 틀을 알 수 있다.
아래에서 각 인터페이스와 구현체들이 어떤 특징을 가지고 있는지 간단히 정리하자면
- List: 데이터의 순서를 기억하고, 중복된 값도 허용한다.
- Set: 중복된 값은 허용하지 않고, 순서도 기억하지 않는다.
- Queue: 데이터를 줄 세우듯이 처리한다. (먼저 들어온 게 먼저 나감 FIFO!)
- Map: 키(key)와 값(value)을 짝지어 저장한다. (Key값은 중복이 불가능)
아마 면접을 보러 가서 Collection이 뭐냐는 질문을 받으면
“Java의 Collection은 Iterable 인터페이스를 구현해 여러 데이터를 그룹으로 묶어 효율적으로 저장하고 관리할 수 있도록 도와주는 프레임워크입니다. 다양한 자료구조(List, Set, Map 등)를 일관된 방식으로 사용할 수 있게 해주는 도구 상자 역할을 합니다.”
라고 답변하면 될 것 같다.
이 글에서는 Collection에 대해서만 알아보고 List, Set, Queue 등도 따로 정리해야겠다!
'Java' 카테고리의 다른 글
| [Java] 제네릭 (Generic) 완전 정복 T와 와일드 카드 (0) | 2026.06.17 |
|---|---|
| [Java] HashMap 은 뭐고 어떻게 동작 하는 걸까? (0) | 2026.04.03 |
| Java - 면접 질문으로 다시 보는 Java의 List와 구현체(ArrayList 등)와 관계 (2) | 2025.04.24 |
| Java - for each문 직접 구현해보기 (0) | 2025.04.24 |
| Java - for each문 (0) | 2025.04.24 |