자바 - Collection 인터페이스
자바에서 Collections에 대한 소개
안녕하세요, 야심勃勃한 자바 개발자 여러분! 오늘 우리는 자바 Collections의 세계로 흥미로운 여정을 떠납니다. 여러분의 친절한 이웃 컴퓨터 과학 교사로서, 저는 여러분이 프로그램에서 객체 그룹을 다루는 방식을 혁신할 기본 개념을 안내해 드리는 것을 기쁜 마음으로 생각합니다.
콜렉션은 당신의 좋아하는 캔디 가방처럼 여러 항목을 보관할 수 있는 마법의 컨테이너라고 상상해 보세요. 하지만 우리는 자바 객체를 저장할 것입니다!
Collection 인터페이스는 무엇인가요?
Collection 인터페이스는 자바 콜렉션 프레임워크의 루트 인터페이스입니다. 자바의 모든 콜렉션 클래스의 조상격입니다. 이 인터페이스는 모든 콜렉션이 가져야 할 가장 기본적인 동작을 정의합니다.
당신이 파티를 준비하고 손님을 관리해야 할 때를 상상해 보세요. Collection 인터페이스는 손님을 추가하거나 제거하거나 특정 사람이 초대되었는지 확인하고, 몇 명이 오는지 세는 메서드를 제공합니다. 꽤 편리하지 않나요?
Collection 인터페이스의 주요 기능
-
java.util
패키지의 일부입니다. - Iterable 인터페이스를 확장하므로, 향상된 for 루프에서 사용할 수 있습니다.
- 객체 그룹을 다루는 표준 방법을 제공합니다.
Collection 인터페이스 메서드
Collection 인터페이스에 정의된 가장 중요한 메서드 중 일부를 살펴보겠습니다. 아래 표에 정리해 두겠습니다:
메서드 | 설명 |
---|---|
boolean add(E e) |
콜렉션에 요소를 추가합니다 |
boolean remove(Object o) |
콜렉션에서 요소를 제거합니다 |
boolean contains(Object o) |
콜렉션에 특정 요소가 있는지 확인합니다 |
int size() |
콜렉션의 요소 수를 반환합니다 |
boolean isEmpty() |
콜렉션이 비어 있는지 확인합니다 |
void clear() |
콜렉션에서 모든 요소를 제거합니다 |
Iterator<E> iterator() |
콜렉션의 요소에 대한 이터레이터를 반환합니다 |
boolean addAll(Collection<? extends E> c) |
다른 콜렉션의 모든 요소를 추가합니다 |
boolean removeAll(Collection<?> c) |
다른 콜렉션에도 있는 모든 요소를 제거합니다 |
boolean retainAll(Collection<?> c) |
다른 콜렉션에도 있는 요소만 남깁니다 |
이제 이 메서드들이 실제 어떻게 작동하는지 예제를 통해 살펴보겠습니다!
자바에서 Collection 인터페이스의 예제
콜렉션 생성 및 요소 추가
import java.util.ArrayList;
import java.util.Collection;
public class CollectionExample {
public static void main(String[] args) {
// ArrayList를 사용하여 새로운 콜렉션 생성
Collection<String> guestList = new ArrayList<>();
// 손님을 목록에 추가
guestList.add("Alice");
guestList.add("Bob");
guestList.add("Charlie");
System.out.println("손님 목록: " + guestList);
System.out.println("손님 수: " + guestList.size());
}
}
이 예제에서 우리는 상상의 파티에 대한 손님 목록을 만듭니다. ArrayList를 사용하여 Collection 인터페이스를 구현합니다. add()
메서드를 사용하여 손님을 초대하고, size()
메서드로 초대한 사람의 수를 확인합니다.
콜렉션에서 요소 제거
// 이전 예제에서 계속
boolean removed = guestList.remove("Bob");
System.out.println("Bob이 제거되었나요? " + removed);
System.out.println("갱신된 손님 목록: " + guestList);
아이고! Bob는 파티에 오지 못합니다. remove()
메서드를 사용하여 손님 목록에서 그를 제거합니다. 메서드는 요소가 성공적으로 제거되면 true
를 반환합니다.
콜렉션에 요소 존재 확인
boolean isAliceInvited = guestList.contains("Alice");
boolean isDaveInvited = guestList.contains("Dave");
System.out.println("Alice가 초대되었나요? " + isAliceInvited);
System.out.println("Dave가 초대되었나요? " + isDaveInvited);
contains()
메서드는 파티의 보디가드처럼 작동합니다. 특정 사람(이 경우 Alice나 Dave)이 손님 목록에 있는지 확인합니다.
콜렉션을 순회
System.out.println("파티에 참석하는 손님:");
for (String guest : guestList) {
System.out.println("- " + guest);
}
여기서 우리는 향상된 for 루프를 사용하여 손님 목록을 순회하고 각 손님의 이름을 출력합니다. 이는 Collection이 Iterable 인터페이스를 확장하기 때문에 가능합니다.
여러 콜렉션과의 작업
Collection<String> vipGuests = new ArrayList<>();
vipGuests.add("Diana");
vipGuests.add("Ethan");
guestList.addAll(vipGuests);
System.out.println("VIP를 포함한 갱신된 손님 목록: " + guestList);
guestList.removeAll(vipGuests);
System.out.println("VIP를 제거한 후의 손님 목록: " + guestList);
이 예제에서 우리는 별도의 VIP 손님 목록을 만듭니다. addAll()
을 사용하여 모든 VIP를 주요 손님 목록에 추가하고, removeAll()
을 사용하여 제거합니다 (아마도 파티에 별도의 VIP 구역이 있을 수 있습니다).
결론
그렇습니다, 여러분! 우리는 자바 Collection 인터페이스의 돌풍 투어를 마쳤습니다. 우리는 콜렉션을 생성하고 요소를 추가하고 제거하며, 요소의 존재 여부를 확인하고, 여러 콜렉션을 작업하는 방법을 배웠습니다.
Collection 인터페이스는 시작에 불과합니다. 앞으로의 수업에서 List, Set, Map과 같은 더 구체적인 콜렉션 유형을 탐구할 것입니다. 각각은 자신만의 독특한 능력을 가지고 있습니다.
자바 여정을 계속하면서, 콜렉션은 데이터 구조의 스위스 아르미 knife처럼 다재다능하고 강력하며, 어떤 자바 개발자의 도구箱에도 필수입니다.
이 예제를 반복 연습하면서, 자바 객체를 마치 프로처럼 다루게 될 것입니다! 행복하게 코딩하시고, 콜렉션이 항상 효율적으로 관리되기를 바랍니다!
Credits: Image by storyset