728x90
배열
- 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것
필요한 이유?
- 같은 종류의 데이터를 순차적, 효율적으로 관리한다.
특징
- 같은 타입만 저장이 가능하다
- 인덱스는 0부터 시작한다
- 인덱스 번호로 접근하여 빠른 접근이 가능하다.
- 최대 길이를 미리 선언해야하며, 수정 및 삭제가 어렵다.
장점
- 구조가 간단하여 사용하기 쉬움
- 데이터를 읽어오는 접근 시간이 빠름
단점
- 크기 변경 불가
- 비순차적 데이터의 추가 또는 삭제의 시간이 오래걸림.
JAVA의 배열
배열 선언의 여러가지 방법
타입[] 변수이름; // 배열을 선언(배열을 다루기 위한 참조변수 선언)
변수이름 = new 타입[길이]; // 배열을 생성(실제 저장공간을 생성)
// 선언과 동시에 데이터 삽입
int[] score = new int[]{ 50, 60, 70, 80, 90};
출력의 여러가지 방법
// 반복문을 통한 출력
int[] arr = {10, 15, 20, 30, 60};
for(int i=0; i < arr.length; i++) { // 배열의 요소를 순서대로 하나씩 출력
System.out.println(arr[i]);
}
// Arrays 클래스를 활용한 출력
int[] arr = {10, 35, 50, 60, 20 };
// 배열 arr의 모든 요소를 출력한다. [10, 35, 50, 60, 20]이 출력된다.
System.out.println(Arrays.toString(iArr));
ArrayList
- 인터페이스 'List'를 구현한 자료구조
List와 Array의 차이
- 크기가 정해져 있지 않으며 동적으로 변한다.
List 자료형
- List 자료형에는 ArrayList, Vector, LinkedList 등의 List 인터페이스를 구현한 자료형이 있다.
특징
- 저장순서 유지, 중복 허용의 특징을 갖는다.
- Object 배열을 이용하여 데이터를 순차적으로 저장.
// ArrayList의 소스 코드
public class ArrayList extends AbstactList
implements List, RandomAccess, Cloneable, java.io.Serializable{
...
transient Object[] elementData; // Object배열
...
}
ArrayList의 선언
List<String> arrayList00 = new ArrayList<>();
ArrayList<String> arrList01 = new ArrayList<>();
LinkedList
- 불연속적으로 존재하는 데이터를 서로 연결(link)한 형태로 구성
- 각 요소(node)들은 자신과 연결된 다음 요소에 대한 주소값과 데이터로 구성되어 있다.
LinkedList의 선언
List<String> linkedList00 = new LinkedList<>();
LinkedList<String> linkedList01 = new LinkedList<>();
Reference
- 자바의 정석
- 점프 투 자바
반응형
'CS > 자료구조' 카테고리의 다른 글
[자료구조] 링크드리스트(Linkde List) (0) | 2022.10.20 |
---|---|
[자료구조] 큐(Queue) (0) | 2022.10.19 |
[자료구조] 스택(Stack) (0) | 2022.10.19 |
[자료구조] 3차원 배열 (Array)의 출력 (0) | 2022.10.15 |