자바 자료 구조 : 배열 - Arrays & ArrayList

2022. 6. 27. 21:49Java/Java

728x90
반응형

배열 - Arrays

데이터를 나열하고 각 데이터를 인덱스에 대응하도록 구성하는 데이터 구조

 

같은 종류의 데이터를 순차적이고 효율적으로 관리하기 위해 사용한는 구조

 

장단점

장점 : 빠른 접근 가능 - 인덱스 번호를 가지고 접근

단점 : 최대 길이를 미리 지정하기 때문에 데이터 추가 및 삭제에 대한 어려움이 있다.

 

//new 키워드를 가지고 배열을 미리 선언 및 삽입 가능
Integer[] list = new Integer[5];
list[0] = 1;
list[1] = 2;

//list = {1, 2, _, _, _};
//위와 달리 선언시 데이터 삽입한 상태로 선언도 가능
Integer list[] = {1, 2, 3, 4, 5};
Integer[] list2 = {6, 7, 8, 9, 10};

 

자바에서는 배열을 편하게 사용하기 위해 java.util.Arrays나 java.util.ArrayList와 같은 클래스를 지원한다.

 

Arrays vs. ArrayList

위 둘은 배열 구조로써 데이터를 삽입 삭제 할 수 있고 Null 값을 저장 할 수 있으며 순서가 정해지지 않았다는 공통점이 존재한다.

 

하지만 가장 큰 차이점은 데이터 길이 조정 가능 여부이다.

 

Arrays는 정적인 배열로 한 번 생성하면 데이터 길이를 변경할 수 없다는 점이 있고,

ArraysList는 동적인 배열로 길이를 나타내는 Capacity 변수를 가진다. 이는 정해진 길이를 넘는다고 하여도 스스로 배열의 길이를 증가시키는 성질을 가진다.

 

그 외에도 여러가지 차이점이 존재한다.

Arrays는 다차원 배열의 기능 수행을 할 수 있으며, ArrayList는 1차원 배열의 기능만 수행 할 수 있다.

Arrays는 int, byte와 같은 Primitive type을 선언 할 수 있으나 ArrayList는 Integer와 같은 Wrapper type으로 선언하여야 한다.

제네릭형은 오직 ArrayList에서 사용 할 수 있다.

 

기본적으로 ArrayList는 아래와 같이 선언한다.

ArrayList<Integer> list = new ArrayList<Integer>();
ArrayList<String> list = new ArrayList<String>();
728x90
반응형

'Java > Java' 카테고리의 다른 글

자바 자료 구조 : 큐 - Queue  (0) 2022.06.27
[JAVA] 객체 지향이란?  (0) 2022.04.03
[Java] BufferedWriter와 System.out.print  (0) 2022.02.09
[Java] 입출력 - BufferedReader와 Scanner  (0) 2022.02.07