본문 바로가기
개발/Java

List - ArrayList 사용하는 방법

by Devsong26 2017. 11. 1.

- 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 BigDecimal을 왜 그리고 어떻게 사용할까?

자바의 수 연산은 기본 자료형이나 BigDecimal 등의 클래스를 이용한다. 보통, Double(Wrapper class)와 BigDecimal 중 어떤 것을 사용해야 하는지로 고민하게 된다. 기본적인 수 연산은 +, -, *, /, % 연산자를..

developer-syubrofo.tistory.com

 

Set, List, Map 정리

- Set 인터페이스란? 중복을 허용하지 않는 자료구조입니다. - Set을 구현한 대표적인 클래스 HashSet, TreeSet, LinkedHashSet이 있습니다. TreeSet은 natural ordering이 적용이 되며, 생성자의 매개변수로 Comp..

developer-syubrofo.tistory.com

 

Set - TreeSet 사용하는 방법

- TreeSet이란? Set 인터페이스를 구현한 클래스로써 기본적으로 nature ordering를 지원하며 생성자의 매개변수로 Comparator객체를 입력하여 정렬 방법을 임의로 지정해 줄 수 있습니다. - 특징 Set 인터

developer-syubrofo.tistory.com

 

Map - HashMap 사용하는 방법

- HashMap이란? Map 인터페이스를 구현한 Hash table입니다. HashMap 객체에는 (key, value)쌍으로 데이터를 입력할 수 있습니다. * (key, value)쌍을 entry라고 부릅니다. - 특징 1. key, value값으로 null을 허..

developer-syubrofo.tistory.com

 

Map - TreeMap 사용하는 방법

- TreeMap이란? NavigableMap 인터페이스를 구현한 Red-Black tree입니다. key값에 의해 정렬이 되는데, 생성자에 Comparator객체를 입력하여 생성할 경우 Comparator의 compare메소드에 의해 정렬이 이루어집니다..

developer-syubrofo.tistory.com

 

'개발 > 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