List 란?
List는 자바에서 제공하는 데이터 구조 중 하나이며, 여러 개의 데이터를 저장할 수 있는 자료형입니다. List는 배열과 비슷하게 인덱스를 사용하여 데이터에 접근할 수 있지만, 배열과 달리 크기가 가변적이므로 데이터의 추가, 삭제 등이 용이합니다
크기가 가변적이라는 것은 리스트(List)에 저장된 데이터의 개수가 변할 수 있다는 뜻입니다. 즉, 데이터를 추가하거나 삭제할 때마다 리스트의 크기가 동적으로 변화할 수 있습니다. 이와는 달리 배열(Array)은 미리 크기를 지정하고 데이터를 저장하는 것이기 때문에, 크기를 변경할 수 없습니다
List는 인터페이스로 정의되어 있고, ArrayList, LinkedList 등 다양한 구현체가 존재합니다. ArrayList는 내부적으로 배열을 사용하여 데이터를 저장하며, 데이터 접근 속도가 빠릅니다. LinkedList는 노드(Node)를 사용하여 데이터를 저장하며, 데이터의 추가, 삭제가 빈번하게 일어나는 경우에 유용합니다
List는 제네릭(Generic)을 지원하여 다양한 자료형의 데이터를 저장할 수 있습니다. 예를 들어, List<String>은 문자열 데이터를 저장하는 List를 의미하며, List<Integer>는 정수형 데이터를 저장하는 List를 의미합니다
List 예시
import java.util.ArrayList;
import java.util.List;
public class ListExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("사과");
list.add("바나나");
list.add("체리");
for (String item : list) {
System.out.println(item);
}
}
}
//출력 : 사과
//출력 : 바나나
//출력 : 체리
위 코드에서는 ArrayList를 사용하여 List 객체를 생성하고, add() 메소드를 사용하여 문자열 데이터를 추가하였습니다. 그리고 for-each 문을 사용하여 모든 데이터를 출력하였습니다
다양한 List 메소드
List에는 다양한 메소드가 존재하는데, 대표적인 메소드 몇 가지를 살펴보면 다음과 같습니다
- add(E e) : 데이터를 추가한다.
- remove(Object o) : 데이터를 삭제한다.
- get(int index) : 지정된 인덱스에 해당하는 데이터를 반환한다.
- set(int index, E element) : 지정된 인덱스에 해당하는 데이터를 변경한다.
- size() : 저장된 데이터의 개수를 반환한다.
- contains(Object o) : 지정된 데이터가 포함되어 있는지 확인한다.
add(E e)
List<String> fruits = new ArrayList<>();
fruits.add("apple");
fruits.add("banana");
fruits.add("cherry");
for (String item : fruits) {
System.out.println(item);
}
// 출력 : apple
// 출력 : banana
// 출력 : cherry
remove(Object o)
List<String> fruits = new ArrayList<>();
fruits.add("apple");
fruits.add("banana");
fruits.add("cherry");
fruits.remove("banana"); // return 값은 true or false
for(String item : fruits){
System.out.println(item);
}
//출력 : apple
//출력 : cherry
get(int index)
List<String> fruits = new ArrayList<>();
fruits.add("apple");
fruits.add("banana");
fruits.add("cherry");
String firstFruit = fruits.get(0);
System.out.println(firstFruit);
//출력 : apple
set(int index, E element)
List<String> fruits = new ArrayList<>();
fruits.add("apple");
fruits.add("banana");
fruits.add("cherry");
fruits.set(1, "orange");
for(String item : fruits){
System.out.println(item);
}
//출력 : apple
//출력 : orange
//출력 : cherry
size()
List<String> fruits = new ArrayList<>();
fruits.add("apple");
fruits.add("banana");
fruits.add("cherry");
int numOfFruits = fruits.size();
System.out.println(numOfFruits);
//출력 : 3
contains(Object o)
List<String> fruits = new ArrayList<>();
fruits.add("apple");
fruits.add("banana");
fruits.add("cherry");
boolean hasBanana = fruits.contains("banana");
System.out.println(hasBanana);
//출력 : true
위와 같이 List의 각 함수를 사용하는 예시 코드를 보여드렸습니다