728x90
배열 (Array) 이란
데이터를 나열하고, 각 데이터를 인덱스에 대응하도록 구성한 데이터 구조이다.
배열은 반복문 등을 이용하여 계산과 같은 과정을 쉽게 처리할 수 있습니다.
배열은 고정된 갯수의 데이터를 저장하는데 사용되는 자료구조이며, 배열의 길이는 배열이 생성될때 설정이 됩니다.
배열의 각 항목을 요소라고 하며, 각 요소는 숫자 인덱스에 의해 접근을 할 수 있습니다.
다만, 파이썬에서는 리스트 타입이 배열 기능을 제공한다.
배열은 왜 필요할까?
- 같은 종류의 데이터를 효율적으로 관리하기 위해서 사용
- 같은 종류의 데이터를 순차적으로 저장
// new 키워드를 사용해서, 배열을 미리 선언하고, 데이터를 넣을 수도 있음
Integer[] data_list = new Integer[10];
data_list[0] = 1
장점
빠른 접근 가능 : 첫 데이터의 위치에서 상대적인 위치로 데이터 접근 가능(인덱스 번호로 접근)
단점
데이터 추가/삭제가 어려움, 미리 최대 길이를 지정해야함
JAVA에서 배열
JAVA에서는 기본 문법으로 배열을 지원한다.
- 1차원 배열은 [] 를 통해 선언할 수 있음
- 각 아이템은 { } 내에 콤마로 작성
// new 키워드를 사용해서, 배열을 미리 선언하고, 데이터를 넣을 수도 있음
Integer[] data_list = new Integer[10];
data_list[0] = 1
// 직접 배열 데이터 선언시 넣을 수도 있음
Integer data_list1[] = {5, 4, 3, 2, 1};
Integer[] data_list2 = {1, 2, 3, 4, 5};
System.out.println(data_list2[0]);
JAVA에서는 배열을 보다 쉽게 다루기 위해서 클래스등을 제공
Ex ) Arrays 클래스를 활용하여, 전체 데이터 출력하기
기회가 된다면 이러한 라이브러리를 뜯어보자.
import java.util.Arrays;
System.out.println( Arrays.toString(data_list2) );
// [1, 2, 3, 4, 5]
// 배열의 내용을 출력하려면, Arrays.toString(배열변수) 메서드를 사용하면 됨
JAVA에서는 배열을 보다 손쉽게 다루기 위한 ArrayList 클래스
- ArrayList 클래스는 가변 길이의 배열 자료구조를 다룰 수 있는 기능을 제공함
이전에 List와 ArrayList에 대해서 정리를 한적이 있다.
https://superohinsung.tistory.com/114
간단하게 정리를 하자면
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>();
728x90
'Computer Science > DataStructure' 카테고리의 다른 글
[DataStructure] Java에서 스택(Stack) 사용하기. (0) | 2023.07.29 |
---|---|
[DataStructure] 큐(Queue) feat. C, Java (0) | 2023.07.22 |
[DataStructure] 스택(Stack) feat. C, Java (0) | 2023.07.21 |
[DataStructure] 트리(Tree) (0) | 2023.07.19 |
[DataStructure] Array & ArrayList & LinkedList (JAVA) 정리 (0) | 2023.03.18 |