int[] ints = new int[] {1,2,3,4};
배열은 같은 타입의 데이터들을 저장하는 자료구조입니다. 연속된 메모리 공간에 데이터들을 저장하기에 데이터들은 각각 이름이 없지만 인덱스로 접근 가능합니다.
인덱스가 0부터 시작하는 이유 : ints가 표시하는 첫 번째 원소로 부터 몇 번째 떨어져 있다(offset)
String[] names = {"one", "two", "three"};
왜 사용할까?
연속된 메모리 공간에 데이터들을 저장하기 떄문에 cpu cache를 통해 같은 배열에 있는 다을 데이터에 접근하는 시간을 줄일 수 있다.
- 배열을 생성할 때 크기를 정해야한다.
- 데이터의 수가 정확하지 않을 때 크기를 정하기 어려움
- 작게하면 원하는 만큼의 데이터를 담지 못할 수 있고, 크게한다면 메모리가 낭비될 수 있다.
- 데이터를 삽입하거나 제거해야하는 경우, 배열은 변경만 할 수 있다.
- 배열의 원소 값을 중복없이 관리하기 힘들다.
크기가 변할 수 있는 Array를 의미합니다. 배열과는 다르게 데이터를 더하거나 빼는 것이 가능한 자료구조입니다.
resizable array, array list 등등으로 불림
ADT(추상자료형) : 구현방법은 명시하지 않고 자료구조의 특성들과 어떤 operations들이 있는지를 설명하는 자료구조의 형태
- ex) stack, queue