데이터를 나열하고, 각 데이터를 인덱스에 대응하도록 구성한 데이터 구조
- 같은 종류의 데이터를 효율적으로 관리하기 위해 사용
- 같은 종류의 데이터를 순차적으로 저장
- 장점 - 빠른 접근 가능 : 첫 데이터의 위치에서 상대적인 위치로 데이터 접근( 인덱스 번호 )
- 단점 - 데이터 추가/삭제의 어려움 : 미리 최대 길이를 지정
복잡도를 낮추기 위해 주로 Wrapper 사용
- null 을 용이하게 처리
- ArrayList 등 객체만을 핸들링 하는 기능을 사용하기 위해
- 1차원 배열을 []를 통해 선언할 수 있음
- 각 아이템은 {} 내에 콤마로 작성
Integer data_list1[] = {5, 4, 3, 2, 1}; Integer[] data_list2 = {1, 2, 3, 4, 5};
Arrays 클래스, ArrayList 클래스 등
- ArrayList 클래스는 가변 길이의 배열 자료구조를 다룰 수 있는 기능을 제공
- List 는 인터페이스, ArrayList 는 클래스
- 클래스는 크게 일반 클래스와 클래스 내에 '추상 메서드' 가 하나 이상 있거나, abstract 로 정의된 추상 클래스로 나뉨
- 인터페이스는 모든 메서드가 추상 메서드인 경우를 의미하며, 인터페이스를 상속받는 클래스는 인터페이스에서 정의된 추상 메서드를 모두 구현해야 함 (따라서 다양한 클래스를 상속받는 특정 인터페이스는 결국 동일한 메서드를 제공함)
- ArrayList 가 아니라, List 로 선언된 변수는 다음과 같이 필요에 따라 다른 리스트 클래스를 쓸 수 있는 구현상의 유연성 을 제공함
배열에 대한 복습을 진행하며 List 와 ArrayList 의 차이점의 이해를 보완할 수 있는 시간이었다.