JAVA - 배열

이상해씨·2022년 7월 23일
0

웹 풀스택(JAVA)

목록 보기
5/54

✔배열

  • 배열(Array) : 동일한 타입의 데이터 0개 이상을 하나의 연속된 메모리 공간에 관리하는 데이터 타입.
// 배열 미사용
int score1 = 50;
int score2 = 50;
// => 따로 변수를 할당하여 관리하여야하는 불편함.
// => 변숭의 수가 동적으로 결정될 경우 필요한 만큼 할당할 수 없음.

// 배열 사용
int[] scoreArr = {50, 50};
// => 배열을 통해 공통된 속성을 쉽게 관리할 수 있음.
// => 변수의 수 동적 결정도 가능.
  • 배열의 특징

    • 요소에 접근하는 속도가 매우 빠름.(인덱스 활용, O(1))
    • 한 번 생성하면 크기 변경 불가.(새로운 배열에 복사하여 할당하는 방법으로 크기 변경.)
    • 참조형 변수의 일종이다.
  • 배열 생성 : 타입[] 변수명 or 타입 변수명[]

    • new 키워드로 새로운 배열 할당

    • 배열 초기화 : 각 데이터 타입의 기본값으로 default 초기화 진행.

      타입default 값
      booleanfalse
      char'\u0000' - 공백
      byte, short, int0
      long0L
      float0.0f
      double0.0
      참조형null
  • 배열의 사용

    • index를 이용해 각 요소 접근 (index 시작 번호는 0)
    • 배열 길이 조회 : 배열명.length
  • 배열의 생성과 메모리 사용 과정 : type[] v = new type[n]

    • 배열 선언 : type[] v;
    • 배열 생성 : new type[n]; 메모리의 연속된 공간 차지(크기 변경 불가). type에 대한 default 초기화
    • 참조 값 할당 : v = new type[n];
    • 요소 값 할당 : v[i] = value;
  • Array is Immutable

    • 배열은 최초 메모리 할당 이후 변경할 수 없다.
    • 개별 요소는 다른 값으로 변경이 가능하나, 요소를 추가하거나 삭제할 수 없다.
    • 배열 복사 : System.arrayCopy, Arrays.copyOf 등의 메소드를 활용해 새로운 배열에 복사하는 방식으로 추가, 삭제를 진행할 수 있다.
  • for-each with Array
    • 가독성이 개선된 반복문. 배열 및 Collections에서 사용.
    • index가 아닌 각 요소(element)에 접근하는 변수 제공 : naturally read only(copied value)
    • index를 사용할 수 없으므로 index가 필요없는 경우 사용.
int[] numArr = {1, 2, 3, 4, 5};
for(int num : numArr){
	System.out.println(num);
}

✔다차원 배열

  • 다차원 배열 : 2차원 이상의 배열. type[][]..[] 변수명.
    • 선언, 생성, 할당 동시 진행 방식 : type[][]..[] 변수명 = {{{..}}, .., {{..}}}
    • 차원만큼 중괄호를 중첩하여 초기화.
// 2차원 배열 예시.
int[][] board = new int[4][4];

for (int i = 0; i < 4; i++){
	for (int j = 0; j < 4; j++){
		board[i][j] = i*j;
	}
}
profile
후라이드 치킨

0개의 댓글