List는 순서가 있는 요소(element)들의 모음을 나타냅니다. List는 배열과 유사하게 인덱스를 사용하여 요소에 접근할 수 있으며, 요소의 순서가 유지됩니다. 또한 List는 중복된 요소를 허용합니다.
List 인터페이스는 다음과 같은 주요 메서드들을 포함합니다
- 요소의 추가, 삭제 및 접근 : 요소를 추가하거나 삭제하고, 특정 인덱스의 요소에 접근하는 메서드들이 포함됩니다.
- add(E element) : 요소를 리스트의 끝에 추가합니다.
- add(int index, E element) : 지정된 인덱스에 요소를 추가합니다.
- remove(Object o) : 지정된 요소를 삭제합니다.
- remove(int index) : 지정된 인덱스의 요소를 삭제합니다.
- get(int index) : 지정된 인덱스의 요소를 반환합니다.
- 요소 검색 : 리스트에서 특정 요소를 검색하는 메서드들이 포함됩니다.
- contains(Object o) : 지정된 요소가 리스트에 포함되어 있는지 여부를 반환합니다.
- indexOf(Object o) : 지정된 요소의 첫 번째 인덱스를 반환합니다.
- 리스트 정보 조회 : 리스트의 크기나 비어 있는지 여부를 확인하는 메서드들이 포함됩니다.
- size() : 리스트의 요소 개수를 반환합니다.
- isEmpty() : 리스트가 비어 있는지 여부를 반환합니다.
List 인터페이스는 이러한 메서드들을 통해 다양한 리스트 구현체에서 일관된 방식으로 요소들을 관리할 수 있도록 합니다. 예를 들어, ArrayList, LinkedList, Vector 등은 List 인터페이스를 구현한 구현체들입니다. 이러한 구현체들은 각각의 특성에 따라 요소의 추가, 삭제, 검색 등에 대해 다른 성능 특성을 가질 수 있습니다.
List는 배열과 달리 크기를 동적으로 조정할 수 있으며, 중간에 요소를 삽입하거나 삭제하는 작업이 쉽습니다. 따라서 List는 자료를 유연하게 관리하고 다양한 용도로 활용할 수 있는 중요한 데이터 구조입니다.
아래는 사용에 대한 예시입니다.
import java.util.ArrayList;
import java.util.List;
public class TravelPlanner {
public static void main(String[] args) {
// 여행 일정 리스트 생성
List<String> itinerary = new ArrayList<>();
// 여행 일정 추가
itinerary.add("2024-07-01: 서울");
itinerary.add("2024-07-02: 부산");
itinerary.add("2024-07-03: 제주도");
// 중간에 일정 삽입
itinerary.add(2, "2024-07-02: 경주");
// 여행 일정 출력
System.out.println("여행 일정:");
for (String item : itinerary) {
System.out.println(item);
}
}
}
위의 예시에서는 ArrayList를 사용하여 여행 일정을 저장하는 리스트를 만들었습니다. 각 요소는 날짜와 해당 날짜에 방문할 장소를 문자열로 표현하였습니다.
add() 메서드를 사용하여 일정을 추가하고, 중간에 일정을 삽입을 매우 간단하게 할 수 있으며, for-each 루프를 사용하여 리스트의 쉽게 모든 일정을 출력할 수 있습니다.
이와 같이 List를 사용하면 여러 종류의 데이터를 순서대로 저장하고 관리할 수 있으며, 동적으로 크기를 조정할 수 있습니다.
기본적으로 쓰이는 자료구조 알고리즘 조차 실제 구현하면 매우 목잡하지만, List를 이용하면 많은 상황에서 쓰이는 자료구조를 쉽게 구현할 수 있습니다.
'JAVA > 기초' 카테고리의 다른 글
[Java] foreach문 (0) | 2024.03.14 |
---|---|
[Java] List와 불변성(Immutability) (0) | 2024.03.04 |
[Java] 추상 클래스와 인터페이스의 동시 사용 (0) | 2024.02.27 |
[Java] 다중 인터페이스(다중 상속) (0) | 2024.02.27 |
[Java] 인터페이스(interface)와 디폴트(default) 메서드 (1) | 2024.02.27 |