connecting the dots
Java에서 많이 쓰이는 ArrayList 본문
ArrayList 정의
ArrayList는 Java에서 가장 많이 사용되는 자료구조입니다. 배열처럼 인덱스와 Value로 구성되어 있습니다. 배열과 동일하게 연속된 메모리 공간을 사용하지만, 배열과의 차이점은 ArrayList는 크기가 가변적으로 변한다는 점입니다. 따라서, 만약 데이터를 추가하고자 한다면 더 큰 용량의 메모리를 할당해줍니다.
ArrayList 사용
Java에서는 ArrayList를 제공하므로 여러분이 직접 ArrayList를 구현할 일은 없을 것입니다. 그럼 ArrayList를 사용하는 법을 알아봅시다.
- ArrayList 생성
import java.util.ArrayList;
ArrayList<Integer> numbers = new ArrayList<>();
ArrayList<Integer> numbers = new ArrayList<>(10); // 초기용량 설정
- 데이터 추가
add 메소드를 사용하면 기본적으로 ArrayList의 맨 뒤에 데이터를 삽입합니다.
numbers.add(10);
numbers.add(20);
원하는 인덱스에 데이터를 넣고싶으면 numbers.add(index, value); 하게 되면 해당 인덱스 뒤의 데이터들은 한 칸씩 밀리게 됩니다.
- 특정 인덱스의 데이터를 삭제
numbers.remove(0);
- 특정 인덱스의 값을 가져오기
numbers.get(0);
get 메소드와 반복문을 사용해 ArrayList에 들어있는 값을 순회할 수 있습니다.
- 반복
ArrayList를 탐색할 때는 Iterator를 사용합니다. Iterator를 사용하기 위해서는 Iterator 객체를 만들어야 합니다.
Iterator it<Integer> = numbers.iterator();
while(it.hasNext()){
System.out.println(it.Next());
}
Iterator보다 조금 더 간단하게 반복하는 방법은 다음과 같습니다.
for(int value : numbers){
System.out.println(value);
}
- 값 존재 유무 확인
ArrayList 안에 특정 값이 존재하는지 유무만 확인한다면 contains()를 사용합니다. 값이 있는 경우 true를, 값이 없는 경우 false를 리턴합니다.
indexOf()는 값이 존재하는 경우 해당 값의 인덱스를 리턴합니다. 값이 존재하지 않을 경우는 -1을 리턴합니다.
※ Object형을 비교할 때에는 비교 연산자 ==이 아니라 a.equals(b)와 같이 equals 메소드를 이용해야 합니다.
'data structure' 카테고리의 다른 글
큐(Queue)란 (0) | 2021.01.16 |
---|---|
스택(Stack)이란 (0) | 2021.01.16 |
Linear Search와 Binary Search (0) | 2021.01.15 |
LinkedList의 개념과 구현 (0) | 2021.01.14 |
Java에서의 Vector (+ ArrayList와 비교) (0) | 2021.01.11 |