배열

안승수·2023년 1월 17일
0

Java

목록 보기
5/8

동일 타입의 데이터 0개 이상을 하나의 연속된 메모리 공간에서 관리

변수가 하나 둘 증가하다보면 관리적인 측면에서도 용이성이 떨어진다. 이를 해결하기 위해 배열이 존재한다.

배열을 선언할 때 사용되는 변수는 단순히 참조공간을 가리키는 이름이다.

배열은 Reference Type으로 참조값을 가지고 있다. 만약 해당 배열이 담는 타입이 Primitive라면 각 공간에는 값이, Reference라면 또 다시 참조값을 가지고 있는 셈이 되는 것이다.

배열을 생성하는 방법은 크게 3가지가 존재한다.

Type[] arr_name = new Type[];
Type[] arr_name = {val...};
Type[] arr_name;
arr_name = new Type[]{val};

선언과 할당이 별도의 구문으로 이뤄지는 경우 할당 구문에서 *new Type[]을 잊지말자!

  • 인덱스를 통한 접근 : O(1) arr[idx]
  • 인덱스는 0부터!
  • 전체 길이는 arr_name.length
  • 기본값으로 초기화가 이루어진다.
  • 배열 출력 : Arrays.toString(), Arrays.deepToString()
  • 문자열을 문자배열로 : String.toCharArray()

한번 선언된 배열은 크기를 변경할 수 없으므로 immutable하다.

이러한 문제점을 해결하기 위해 배열을 복사하는 방법이 있다.

  • void : System.arrayCopy(srcArr,startPos,destArr,targetPos,copyLength);
  • T[] : Arrays.copyOf(srcArr,copyLength);

2차원 배열은 Arrays of Array이다.

int[][] arr = new int[3][2];

arr.length = 3;
arr[0].length => 2

int[][] arr = new int[3][];

arr.length => 3

arr[0].length => null pointer exception
arr[0] = new int[4];
arr[1] = new int[2];
arr[0].length => 4
arr[1].length => 2
profile
To be FullStack Developer

0개의 댓글