Search
Duplicate

1. 배열(Array)

생성일
2022/06/16 04:59
태그
데이터를 나열하고, 각 데이터를 인덱스에 대응하도록 구성한 데이터 구조
파이썬에서는 리스트 타입이 배열 기능을 제공함
1.
배열은 왜 필요할까?
같은 종류의 데이터를 효율적으로 관리하기 위해 사용 ex)학교 특정 반의 학생들의 이름
같은 종류의 데이터를 순차적으로 저장
장점
빠른 접근 가능
첫 데이터의 위치에서 상대적인 위치로 데이터 접근(인덱스 번호로 접근)
단점
데이터 추가/삭제의 어려움
미리 최대 길이를 지정해야 함
참고 : Primitive 자료형과 Wrapper 클래스
자바에서는 int와 integer 같이, Primitive 자료형과 Wrapper 클래스가 있음
Wrapper 클래스 - null을 용이하게 처리
2.
JAVA와 배열
java에서는 기본 문법으로 배열 지원 가능
1차원 배열은 []를 통해 선언할 수 있음
각 아이템은 {} 내에 콤마로 작성
배열의 전체 내용 출력 예
System.out.println( Arrays.toString(data_list2) );
List와 ArrayList
다음과 같이 List와 ArrayList 선언의 차이점
List<Integer> list1 = new ArrayList<Integer>();
ArrayList<Integer> list1 = new ArrayList<Integer>();
List는 인터페이스이고, ArrayList는 클래스임
클래스는 크게 일반 클래스와 클래스 내에 ‘추상 메서드’가 하나 이상 있거나, abstract로 정의된 추상 클래스로 나뉨
인터페이스는 모든 메서드가 추상 메서드인 경우를 의미하며, 인터페이스를 상속받는 클래스는 인터페이스에서 정의된 추상 메서드를 모두 구현해야 함 (따라서 다양한 클래스를 상속받는 특정 인터페이스는 결국 동일한 메서드를 제공함)
ArrayList 가 아니라, List로 선언된 변수는 다음과 같이 필요에 따라 다른 리스트 클래스를 쓸 수 있는 구현상의 유연성을 제공함
List<Integer> list1 = new ArrayList<Integer>();
list1 = new LinkedList<Integer>();
다만, 본 자료구조/알고리즘에서는 굳이 동일 변수에 다양한 리스트 클래스를 쓸 필요는 없으므로, 최대한 동일한 클래스로 선언하기로 함.
ArrayList<Integer> list1 = new ArrayList<Integer>();