프로그래밍/JAVA

<22.12.03>JAVA 공부 일지 #01. ArrayList에 대해

mayberry 2022. 12. 3. 18:33

JAVA 공부일지 #01

 

0. ArrayList

 


ArrayList는 자바에서 제공하는, 배열과 비슷한 자료구조이다. 하지만 기존 배열보다 편리한 기능을 많이 가지고 있다.  형태는 배열과 비슷하며 그 기능 또한 유사하다. 배열과 ArrayList의 차이점을 꼽으라면 아래와 같다.

 

1. ArrayList는 동적 크기를 가진다.
     - 일반 배열의 경우, 크기가 정해져있어 선언 시 지정해두었던 size 이상의 값을 담을 수는 없지만, ArrayList는 크기가           정해져있지 않다.
2. ArrayList는 Array에 비해 속도가 느리다.
     -  일반 배열은 초기화 시 곧바로 메모리에 값들이 할당되기 때문에 ArrayList보다 빠르다.
     -  ArrayList는 데이터 추가 및 삭제 시 메모리를 재할당하기 때문에 속도가 Array보다 느리다.
3. ArrayList는 다차원 배열이 불가능하다.
     -  일반 배열은 2차원, 3차원 배열을 생성할 수 있으나, ArrayList의 경우 다차원 배열을 제작할 수 없다.

 

ArrayList를 사용하기 위해선 java.util에서 ArrayList를 import해야한다. 

 

import java.util.ArrayList;

 

 

1. ArrayList 선언


JAVA는 J2SE5.0 버전 이후 부터 제네릭스를 반드시 표기하여 리스트에 포함될 자료형을 명확히 표기해야한다.  

ArrayList<String> strList = new ArrayList<String>();
ArrayList<String> strList = new ArrayList<>();

제네릭스를 선언부에 삽입했을 때, 할당하는 곳에는 두 번 작성하지 않아도 된다.

 

 

2. add


ArrayList에서 데이터 추가는 add로 진행한다. add는 데이터를 직접 입력하여 추가하는 방식도 있고, 특정 인덱스에 데이터를 삽입하는 형식도 가능하다.

ArrayList<String> strList = new ArrayList<String>();
strList.add("밥 먹기");
strList.add(0, "집 가기");

데이터만 삽입하였을 시 리스트의 가장 맨 마지막에 추가되고, 인덱스를 넣을 시 인덱스에 데이터가 추가된다. 

 

 

3. remove


remove의 경우, 리스트에 있는 데이터를 삭제할 수 있다. 인덱스를 넣을 경우 리스트의 인덱스에 해당하는 데이터를 지울수도 있으며, 실제 리스트에 존재하는 값을 인자로 전달하여 삭제할 수도 있다.

ArrayList<String> strList = new ArrayList<String>();
strList.remove("밥 먹기");
strList.remove(1);

 

 

4. size()

 

리스트의 크기를 반환하는 메소드이다.

int size = strList.size();

해당 메소드는 int를 반환한다.