출처 : 어라운드 허브 스튜디오 출처
같은 데이터 타입의 변수들을 순차적으로 저장하기 위한 자료 구조
인덱스의 개념을 가지며 0부터 시작
각 인덱스에 데이터들이 매치되어 처리하기 용이함
인덱스는 고유번호의 느낌(pk같은)
한번에 많은 메모리 공간 선언이 가능함
크기가 정해져 있음
삭제된 공간이 그대로 남음 => 메모리 낭비 가능성 존재
// 선언 예시
int[] arrary;
String[] array;
double[] array;
// 배열 생성 예씨
array = new int[10]; // 10칸 짜리
array = new char[1000];
array = new String [5];
array = {0, 1, 2, 3};
array = {'a', 'b', 'c'};
// 배열 선언과 생성 예시
int[] array = new int[10];
// 2차원 배열
int[][] array = newint[2][7];
// 비정방형 배열, 향과 열의 개수가 다름
int[][] array = new int[3][];
array[0] = new int[3];
array[1] = new int[4];
array[2] = new int[10];
// ArrayList : 배열의 크기를 예상하기 힘들 경우 사용하기 좋은 클래스. 크기를 가변적으로 사용할 수 있음 => 리스트임
배열의 한계 때문에 만들어진 자료형
배열 사용을 위해서 크기를 지정해야 함
=> 하지만, 프로그래밍 중 동적으로 생성하는 경우가 많기 때문에 크기를 미리 정할 수 없음.
=> List는 메모리가 허용하는 한 계속해서 추가할 수 있도록 만든 자료형 클래스임
리스트에서의 인덱스는 몇번째 데이터인가 정도의 의미를 가짐
List 와 ArrayList 존재
List
ArrayList
메서드
LinkedList
ArrayList
LinkedList
데이터 삽입, 삭제시 그만큼 위치를 맞춰줘야 함
따라서, 삽입과 삭제가 많을시 불리함
