본문 바로가기

복습용

19. 컬렉션 프레임워크

컬렉션 프레임워크란?

흔히 프로그램 개발을 건물 짓는 일에 비유합니다. 원하는 건물을 지으려면 구조를 잘 잡아야 하듯이 프로그램을 개발할 때도 사용하는 자료를 어떤 구조로 관리할 것인지가 중요합니다. 그래야 프로그램의 기능을 효과적으로 구현할 수 있기 때문입니다. 이 때 사용하는 것이 자료 구조(data structure)입니다. 자료 구조는 프로그램을 실행 중 메모리에 자료를 유지 관리하기 위해 사용합니다. 자바에서는 필요한 자료 구조를 미리 구현하여 java.util 패키지에서 제공하고 있는데, 이를 컬렉션 프레임워크(Collection framework)라고 합니다. 자료 구조는 개발자가 필요할 때 직접 만들어 사용할 수도 있습니다. 하지만 자바 컬렉션 프레임워크를 사용하면 직접 개발하는 수고를 덜 수 있을 뿐만 아니라 잘 만들어진 자료구조 클래스를 활용할 수 있습니다.

 

자바 컬렉션 프레임 워크에는 여러 인터페이스가 정의되어 있고, 그 인터페이스를 구현한 클래스가 있습니다. 각 인터페이스의 특성과 클래스 활용법을 알면 개발 목적에 맞게 잘 활용할 수 있습니다.

 

 

그림1

 

 

 

Collection 인터페이스

Collection 인터페이스 하위에 List 인터페이스와 Set 인터페이스가 있습니다. List를 구현한 클래스는 순차적인 자료를 관리하는 데 사용하는 클래스이고, Set 인터페이스는 우리가 수학시간에 배운 집합을 생각하면 됩니다. 집합은 순서와 상관없이 중복을 허용하지 않습니다. 따라서 Set 계열의 클래스는 아이디처럼 중복되지 않는 객체를 다루는데 사용합니다.

 

Collection 인터페이스에 선언된 메소드 중 자주 사용하는 메소드는 다음과 같습니다.

 

메소드 설명
boolean add(E e) Collection에 객체를 추가합니다.
void clear() Collection의 모든 객체를 제거합니다.
Iterator<E> iterator Collection을 순환할 반복자(Iterator)를 반환합니다.
boolean remove(Object o) Collection에 매개변수에 해당하는 인스턴스가 존재하면 제거합니다.
int size() Collection에 있는 요소의 개수를 반환합니다.

 

add()나 remove() 메소드가 boolaen형으로 결과 값을 반환하는 것은 객체가 잘 추가되었는지, 컬렉션에서 객체가 잘 제거되었는지 여부를 반환하는 것입니다. Collection 인터페이스를 구현한 클래스는 위 메소드를 모두 제공합니다.

 

 

Map 인터페이스

Map 인터페이스는 하나가 아닌 쌍(Pair)으로 프레임워크란?

 

흔히 프로그램 개발을 건물 짓는 일에 비유합니다. 원하는 건물을 지으려면 구조를 잘 잡아야 하듯이 프로그램을 개발할 때도 사용하는 자료를 어떤 구조로 관리할 것인지가 중요합니다. 그래야 프로그램의 기능을 효과적으로 구현할 수 있기 때문입니다. 이 때 사용하는 것이 자료 구조(data structure)입니다. 자료 구조는 프로그램을 실행 중 메모리에 자료를 유지 관리하기 위해 사용합니다. 자바에서는 필요한 자료 구조를 미리 구현하여 java.util 패키지에서 제공하고 있는데, 이를 컬렉션 프레임워크(Collection framework)라고 합니다. 자료 구조는 개발자가 필요할 때 직접 만들어 사용할 수도 있습니다. 하지만 자바 컬렉션 프레임워크를 사용하면 직접 개발하는 수고를 덜 수 있을 뿐만 아니라 잘 만들어진 자료구조 클래스를 활용할 수 있습니다.

 

 

 

자바 컬렉션 프레임 워크에는 여러 인터페이스가 정의되어 있고, 그 인터페이스를 구현한 클래스가 있습니다. 각 인터페이스의 특성과 클래스 활용법을 알면 개발 목적에 맞게 잘 활용할 수 있습니다.

 

 

 

 

 

그림1

 

 

 

 

 

 

 

Collection 인터페이스

 

Collection 인터페이스 하위에 List 인터페이스와 Set 인터페이스가 있습니다. List를 구현한 클래스는 순차적인 자료를 관리하는 데 사용하는 클래스이고, Set 인터페이스는 우리가 수학시간에 배운 집합을 생각하면 됩니다. 집합은 순서와 상관없이 중복을 허용하지 않습니다. 따라서 Set 계열의 클래스는 아이디처럼 중복되지 않는 객체를 다루는데 사용합니다.

 

 

 

Collection 인터페이스에 선언된 메소드 중 자주 사용하는 메소드는 다음과 같습니다.

 

 

 

메소드 설명

boolean add(E e) Collection에 객체를 추가합니다.

void clear() Collection의 모든 객체를 제거합니다.

Iterator<E> iterator Collection을 순환할 반복자(Iterator)를 반환합니다.

boolean remove(Object o) Collection에 매개변수에 해당하는 인스턴스가 존재하면 제거합니다.

int size() Collection에 있는 요소의 개수를 반환합니다.

 

 

add()나 remove() 메소드가 boolean형으로 결과 값을 반환하는 것은 객체가 잘 추가되었는지, 컬렉션에서 객체가 잘 제거되었는지 여부를 반환하는 것입니다. Collection 인터페이스를 구현한 클래스는 위 메소드를 모두 제공합니다.

 

 

 

 

Map 인터페이스

Map 인터페이스는 하나가 아닌 쌍(Pair)으로 되어 있는 자료를 관리하는 메소드들이 선언되어 있습니다. key-value 쌍이라고 표현하는데 이때 키 값은 중복될 수 없습니다. 학번과 학생 이름처럼 쌍으로 되어 있는 자료를 관리할 때 사용하면 편리합니다.

 

 

실습 패키지 구조

간단한 외원 관리 프로그램을 만들면서 컬렉션 프레임워크에서 제공하는 각 클래스를 실습해 봅시다. 회원관리 프로그램에서 회원 추가, 회원 삭제, 전체 회원 정보 출력 기능을 구현합니다.

 

 

속성으로 사용한 아이디와 이름은 private 변수로 선언하고 get(), set()메소드를 public으로 제공 합니다. 나중에 회원 정보를 출력하기 위해 toString()메소드를 재정의하여 구현 하였습니다.

'복습용' 카테고리의 다른 글

21.Set 인터페이스  (0) 2020.04.06
20. List 인터페이스 ArrayList, LinkedList  (0) 2020.04.06
18.제네릭  (0) 2020.04.02
17-2.Class 클래스  (0) 2020.04.02
17-1.Wrapper 클래스  (0) 2020.04.02