- ArrayList란?
Java.util.ArrayList, Java.util 패키지에 속한 클래스이며,
List인터페이스를 구현한 가변길이 배열입니다.
- 특징
배열처럼 인덱스를 통한 접근이 가능하며, 배열은 크기에 제한을 받지만 ArrayList는 원소의 개수가 크기에 다다르면 자동으로
initial Capacity만큼 증가하기 때문에 추가적인 원소를 입력하더라도 ArrayIndexOutOfBoundsException 에러가 발생하지 않습니다.
- 생성자
생성자의 종류는 세가지가 있습니다. (아래를 참고하세요.)
//기본 생성자
List<Integer> list1 = new ArrayList<Integer>();
//초기 수용량을 지정하는 생성자
ArrayList<Integer> list2 = new ArrayList<Integer>(10);
/*
* 다른 ArrayList객체를 생성자의 매개변수에 입력하여 ArrayList객체를 생성하는 경우
*/
ArrayList<Integer> list3 = new ArrayList<Integer>(list1);
첫번재 생성자는 기본생성자입니다.
기본생성자는 initial capacity default값이 10이기 때문에 10으로 설정되서 생성이 됩니다.
* 여기서 <>를 처음보시는 분들도 계실텐데 이것을 Generic이라고 합니다.
Generic은 클래스 외부에서 클래스의 타입을 결정해주는 것이며, 기본자료형의 경우에는 Wrapper클래스를 입력해야 합니다.
두번째 생성자는 initial capacity값을 생성자의 매개변수로 입력하여 ArrayList 객체를 생성합니다. (솔직히 두 번째 생성자는 많이 안 써봤습니다.)
세번째 생성자는 Collection 인터페이스를 구현한 클래스의 객체를 매개변수로 입력합니다.
이 때 입력된 객체의 모든 원소를 생성되는 ArrayList 객체가 할당받습니다.
예를 들면 위의 사진에 나온대로 매개변수로 들어온 list1에 원소의 개수가 10개 있었다면 list3는 생성과 동시에 10개의 원소를 갖게 됩니다.
- 메소드
모든 메소드를 설명하지 않습니다.
(1) add()
//매개변수로 값만을 넣는 경우에는 마지막 인덱스+1의 위치에 값을 저장합니다.
list1.add(element);
/* 매개변수로 인덱스와 값을 같이 넣는 경우에는 해당 위치 이후에
* 원소들의 인덱스를 +1 하여 한 칸씩 뒤로 미루고, 입력된 인덱스
* 값을 저장합니다.
*/
list1.add(index, element);
/* 매개변수로 Collection을 상속받은 클래스의 객체를 넣을 경우에는
* 마지막 인덱스 뒤에 입력된 객체의 원소들이 저장됩니다.
*/
list3.addAll(Collection_instance);
(2) get()
//매개변수로 인덱스의 값을 입력하여 해당 인덱스의 원소를 반환합니다.
Integer a = list1.get(index);
(3) size()
//ArrayList 객체의 크기(저장된 원소들의 총 개수)를 반환합니다.
list1.size();
(4) remove(), clear()
//인덱스에 해당하는 원소를 ArrayList에서 삭제하고 그것을 반환합니다.
Integer b = list1.remove(index);
//ArrayList의 모든 원소를 삭제합니다.
list1.clear();
/*
* ArrayList의 맨 처음 Object를 삭제합니다.
* 삭제에 성공하면 true, 실패하면 false를 반환합니다.
*/
boolean a = list1.remove(object);
(5) isEmpty()
/*
* ArrayList 객체가 비었는지를 체크합니다.
* 비었으면 true, 그렇지 않으면 false를 반환합니다.
*/
boolean a = list1.isEmpty();
(6) contains()
/* ArrayList에 매개변수로 입력됨
* object가 있다면 true, 없다면 false를 반환합니다.
*/
boolean a = list1.contains(object);
(7) equals()
/*
* list1과 list2의 사이즈가 같고, 저장된 원소들의 모두 동일할
* 경우 true, 그렇지 않으면 false를 반환합니다.
* 단, 둘 다 size가 0일 경우에는 true를 반환합니다.
*/
boolean a = list1.equals(list2);
이상으로 ArrayList설명을 마칩니다.
더 많은 내용을 보시려면 아래를 참고하세요.
블로그의 다른 글
'[개발] 언어 > Java' 카테고리의 다른 글
Map - TreeMap 사용하는 방법 (0) | 2017.11.05 |
---|---|
Map - HashMap 사용하는 방법 (0) | 2017.11.03 |
Windows 10에서 Java 설치하기 (JDK = Java Development Kit) (0) | 2017.11.02 |
Set - TreeSet 사용하는 방법 (0) | 2017.11.02 |
Set, List, Map 정리 (0) | 2017.11.02 |