Archive

Java Day 6 배열

|

Java Day 6 배열


  1. 배열

    • 같은 자료형들끼리 모아두는 하나의 묶음

    • 참조자료형 - 메모리의 번지를 값으로 갖는다, 번지를 통해 객체를 참조

    • 한 번 생성된 후 크기를 변경 할 수 없다

    • NullPointerException

      변수를 선언하고 new 연산자로 초기화하지 않은 상태에서 인덱스로 값을 집어넣을 경우

      배열은 초기 주소값으로 null 을 가지고 있어서 참조를 한 뒤에 사용해야한다.

    • 선언과 초기화

    int[] arr; // 배열의 선언
    arr = new int[3]; // new 연산자로 초기화
    arr = new int[3]{1,2,3}; // 초기화와 동시에 할당
    
    arr = {1,2,3}; // compile error --->  int[] arr = {1,2,3};과 같이 써야함
    
  2. 1차원 배열

    • 배열은 1차원의 연속이다
  3. 다차원 배열

    • 다차원 배열의 선언
    int[][] arr;  // [raw][column]
    int arr[][];
    int[] arr[];
    
    • 다차원 배열의 초기화
    int[][] arr;
    arr = new int[2][2];
    
  • 다차원 배열의 길이
   int[][] arr = new int[2][3];
   System.out.print(arr.length); //output : 2 출력

배열 arr은 힙 메모리 영역에 2개의 row를 참조하고 있고, 각각의 row는 column을 참조하고 있으므로 arr의 길이는 2가 된다.

  1. 가변길이

    • 다차원 배열에서 row의 각각의 column 길이는 일정하지 않을 수 있다
    int[][] arr = new int[3][]; //row만 참조
    arr[0] = new int[2]; //각각의 column 참조
    arr[1] = new int[3];
    arr[2] = new int[1];
    //1행은 2열. 2행은 3열, 3행은 1열
    
  2. 배열 복사

    • 배열은 크기를 변경 할 수 없으므로 크기를 바꿀려면 원하는 크기의 배열을 생성한 후 기존의 것을 복사해와야한다

    • System.arraycopy(복사할 배열, 시작위치(복사할배열), 복사해서 저장할 배열, 시작위치(저장할 배열), 개수)

    String[] arr = {"하","이","루"};
    String[] arr2 = new String[4];
    arr2[3] = "!";
    System.arraycopy(arr, 0, arr2, 1, 3);
    // arr2 출력 : 하이루!
    

참고 자료


이것이자바다

자바프로그래밍100% 실전가이드

KG아이티뱅크 자바 강의자료