컬렉션 프레임워크(Collection Framework)는 자바에서 자료구조를 구현하고 관리하기 위한 클래스 라이브러리입니다. 이를 사용하면 다양한 자료구조를 쉽게 구현하고 관리할 수 있습니다. 컬렉션 프레임워크는 다음과 같은 특징을 가집니다.
다양한 자료구조 제공: List, Set, Map 등 다양한 자료구조를 제공합니다.
인터페이스와 구현 클래스 분리: 인터페이스와 구현 클래스를 분리함으로써, 자료구조를 사용하는 프로그래머는 구현 내용을 알 필요가 없습니다.
공통 메서드 제공: 모든 컬렉션 클래스에서 공통으로 사용되는 메서드를 제공합니다.
컬렉션 프레임워크는 java.util 패키지에 속해 있으며, 다양한 인터페이스와 클래스로 구성되어 있습니다.
반응형
List 인터페이스
List 인터페이스는 순서가 있는 데이터의 모음을 다루기 위한 인터페이스입니다. List는 중복된 데이터를 저장할 수 있으며, 데이터의 삽입, 삭제, 수정, 검색 등의 작업이 가능합니다. List 인터페이스를 구현하는 대표적인 클래스로는 ArrayList, LinkedList, Vector 등이 있습니다.
ArrayList 클래스
ArrayList 클래스는 내부적으로 배열을 사용하여 데이터를 관리하는 List 인터페이스의 구현 클래스입니다. ArrayList는 순차적인 데이터 접근에 용이하며, 데이터의 삽입/삭제가 많은 경우에는 LinkedList 보다 느리지만, 데이터의 검색에는 더욱 빠릅니다. ArrayList 클래스는 다음과 같은 생성자를 제공합니다.
public ArrayList() // 초기 용량(capacity) 10으로 설정
public ArrayList(int initialCapacity) // 초기 용량을 지정할 수 있는 생성자
public ArrayList(Collection<? extends E> c) // 지정된 Collection에 포함된 모든 요소를 포함하는 ArrayList를 생성하는 생성자
ArrayList 예시
다음은 ArrayList 클래스의 예시 코드입니다. ArrayList 객체를 생성하고, add() 메서드를 사용하여 데이터를 추가하고, get() 메서드를 사용하여 데이터를 가져오는 예제입니다.
import java.util.ArrayList;
public class ArrayListExample {
public static void main(String[] args) {
// ArrayList 객체 생성
ArrayList<String> arrayList = new ArrayList<>();
// 데이터 추가
arrayList.add("apple");
arrayList.add("banana");
arrayList.add("orange");
// 데이터 출력
for (String item : arrayList) {
System.out.println(item);
}
// 데이터 가져오기
String item = arrayList.get(1);
System.out.println(item);
}
}
위 코드에서는 ArrayList 클래스를 사용하여 문자열 데이터를 관리하는 예제를 보여줍니다. add() 메서드를 사용하여 데이터를 추가하고, get() 메서드를 사용하여 데이터를 가져오는 방법을 보여줍니다. 또한, for-each 구문을 사용하여 ArrayList에 저장된 모든 데이터를 출력하는 방법을 보여줍니다.
LinkedList 클래스
다음은 LinkedList 클래스의 예시 코드입니다. LinkedList 객체를 생성하고, add() 메서드를 사용하여 데이터를 추가하고, get() 메서드를 사용하여 데이터를 가져오는 예제입니다.
import java.util.LinkedList;
public class LinkedListExample {
public static void main(String[] args) {
// LinkedList 객체 생성
LinkedList<String> linkedList = new LinkedList<>();
// 데이터 추가
linkedList.add("apple");
linkedList.add("banana");
linkedList.add("orange");
// 데이터 출력
for (String item : linkedList) {
System.out.println(item);
}
// 데이터 가져오기
String item = linkedList.get(1);
System.out.println(item);
}
}
위 코드에서는 LinkedList 클래스를 사용하여 문자열 데이터를 관리하는 예제를 보여줍니다. add() 메서드를 사용하여 데이터를 추가하고, get() 메서드를 사용하여 데이터를 가져오는 방법을 보여줍니다. 또한, for-each 구문을 사용하여 LinkedList에 저장된 모든 데이터를 출력하는 방법을 보여줍니다.
마무리
이번 글에서는 자바의 컬렉션 프레임워크 소개와 List 인터페이스에 대해서 알아보았습니다. List 인터페이스는 ArrayList, LinkedList, Vector 등 다양한 클래스로 구현될 수 있으며, 각 클래스마다 특징이 다릅니다. 이를 잘 이해하고 적절히 사용함으로써, 더욱 효율적인 자바 프로그래밍을 할 수 있을 것입니다. 다음 글에서는 Set 인터페이스와 Map 인터페이스에 대해서 알아보도록 하겠습니다.