ArrayList란 무엇일까?
-
Java에서 가장 많이 사용되는 데이터 스트럭쳐
-
기본 초기 크기는 10이며, 10보다 더 커져야 한다면 자동으로 크기가 증가된다.
ArrayList Class의 장점
- 동적으로 크기의 변경이 가능하다
- 특정한 위치에 element를 추가 혹은 삭제를 할 수 있다
- 다양한 메서드를 지원한다
- add()
- remove()
- size()
- contains()
- indexof()
- ....
- generic이 사용되지 않는다면, 다양한 타입의 객체를 저장할 수 있다
- 하나의 ListIterator를 사용하여 양방향으로 순회가 가능하다
- 여러 개의 null element를 저장할 수 있다
- 중복된 element를 저장할 수 있다
ArrayList의 사용법
생성
-
ArrayList는 java.util.ArrayList에 포함되어 있기 때문에 import를 해준다
1import java.util.ArrayList;cs -
ArrayList를 사용하기 위해서 ArrayList 객체(Object)를 생성해야 한다
1234ArrayList ai = new ArrayList();ArrayList<Integer> numbers = new ArrayList<>();ArrayList<String> list = new ArrayList<String>();ArrayList<Card> card_list = new ArrayList<Card>();cs
추가
-
Element를 추가할 때는 add 메서드를 사용하여 추가한다. add를 통해서 입력되는 값은 객체(Object)의 데이터 타입을 가지고 있다
12345678ai.add("One");ai.add(2);numbers.add(40);list.add("First String");Card c = new Card(name, num);card_list.add(c);// 특정한 위치에 값을 넣고 싶을 경우 [0, 1, 2, 3, 4, ...]numbers.add(1, 100);cs
수정
-
특정한 인덱스의 값을 수정하고자 할 때는 set 메소드를 사용하여 내용을 수정한다
1numbers.set(3, 300);cs
삭제
-
특정한 인덱스에 위치하고 있는 element를 삭제하거나 값을 삭제하고자 할 때 remove 메소드를 사용한다
1234// ArrayList.remove(int index)numbers.remove(4);// ArrayList.remove(Object o)list.remove("First String");cs
값 불러오기
-
특정한 인덱스에 위치하고 있는 element의 값을 가져올 때 get 메소드를 사용한다
-
get을 사용하여 이를 꺼내도 Object의 데이터 타입을 가지고 있다
12numbers.get(2);card_list.get(0);cs
그 외의 메서드들
메서드 | 기능 |
contains(Object O) | 객체 매개변수 O에 매치되는 값이 있으면 true를 반환 |
isEmpty() | ArrayList에 아무 원소도 없으면 true를 반환 |
indexOf(Object O) | 객체 매개변수 O의 인덱스 또는 -1를 반환 |
size() | 현재 ArrayList에 들어있는 원소의 개수를 반환 |
clear() | 현재 ArrayList에 들어있는 모든 원소를 삭제 |