[Data Structure / Algorithm] 배열 (Array)

army246·2022년 4월 26일
0

📌 배열 (Array)

배열은 연속된 메모리 공간에 순차적으로 저장되어 있는 데이터 모음이다.
대부분 같은 종류의 데이터 타입을 저장한다.
배열을 구성하는 값을 요소(element) 라고 하고, 배열 위치를 알려주는 숫자는 인덱스(index) 라고 한다.

  • 순차적인 데이터를 저장하며 값보다 순서가 중요한 경우
  • 다차원 데이터를 다루는 경우
  • 특정 요소를 빠르게 읽어야 하는 경우
  • 데이터 사이즈가 빈번하게 바뀌지 않고, 요소가 빈번하게 추가/삭제되지 않는 경우
    이런 경우에 배열을 사용한다.

배열의 장점

  • 인덱스 번호를 통해서 접근이 가능하기 때문에 요소에 빠르게 접근할 수 있다.
  • 간단하고 사용하기 쉽다.
  • 부가정보 없이 데이터만 저장하기 때문에 공간 낭비가 적다.

배열의 단점

  • 배열을 선언 한 후에는 할당된 메모리 크기를 변경할 수 없다.
  • 삽입, 삭제가 어렵다.
    • 메모리가 순차적으로 이어져 있어야 하기 때문에 중간에 요소를 삽입/삭제하는 경우 그 요소로부터 모든 요소들을 이동시켜줘야 하기 때문에 비용이 많이 든다.
  • 배열의 크기는 대부분 정적으로 결정되기 때문에 삽입/삭제가 동적으로 발생하는 상황에 적절한 배열의 크기를 미리 정하는 것이 어렵기 때문에 오버플로나 저장공간 낭비가 생길 수 있다.

❗️JAVA 배열

1차원 배열[]를 사용하여 선언할 수 있고, 소들은 {} 안에 ','(콤마)로 구분하며 작성할 수 있다.

// new 키워드 이용해서 배열 선언 후 데이터를 넣을 수 있다.
Integer[] array = new Integer[5];
array[0] = 1;
array[1] = 2;

// 선언과 동시에 요소를 넣을 수 있다.
Integer[] array2 = {1,2,3,4,5};

기본 문법으로 2차원 배열, 다차원 배열 선언도 가능하다.

// 2차원 배열
Integer array1[][] = {{1,3,5},{2,4,6}};

// 3 출력
System.out.println(array[0],[1]);
// 6 출력
System.out.println(array[1],[2]);


// 다차원 배열
Integer[][][] array2 = {
	{
    	{1,3,5},
        {2,4,6}
    },
    {
    	{7,9,11},
        {8,10,12}
    }
 };
 
 // 6 출력
 System.out.println(array2[0][1][2]);
 
 // 9 출력
  System.out.println(array2[1][0][1]);

참고
https://yoongrammer.tistory.com/43

profile
천천히 꾸준히

0개의 댓글