자바 자료구조

💽 자바 배열

King of Silicon Valley 2021. 10. 5. 15:54
728x90

배열이란?

  • 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 '배열(array)'이라고 한다.

배열의 선언과 생성

선언

  • 타입[] 변수이름

    • int[] score;
    • String[] name;
    • 타입 변수이름[]
      • int score[];
      • String name[];

생성

  • 배열을 생성하기 위해서는 연산자 'new'와 함께 배열의 타입과 길이를 지정해 주어야 한다.

타입[] 변수이름 new 타입[길이]

int [] score;
score = new int[5];

int[] score = new int[5];

배열의 길이

  • 자바에서는 JVM이 모든 배열의 길이를 별도로 관리하며, '배열이름.length'를 통해서 배열의 길이에 대한 정보를 얻을 수 있다.
int[] arr = new int[5]; // 길이가 5인 배열 
int tmp   = arr.length;  tmp에 5가 저장된다. 

배열의 초기화

  • 자바에서는 아래와 같이 배열을 간단히 초기화 할 수 있는 방법을 제공한다.
int [] score = new int[] { 50, 60, 70, 80, 90 };
  • 저장항 값들을 괄호{} 안에 쉼표로 구분해서 나열하면 되며, 괄호 {} 안의 개수에 의해 배열의 길이가 자동으로 결정되기 때문에 괄호[] 안에 배열의 길이는 안적어도 된다.
int[] score = new int[]{ 50, 60, 70, 80, 90};
int[] score = { 50, 60, 70, 80, 90}; // new int[]를 생략할 수 있음 
  • 심지어는 위와 같이 'new 타입[]'을 생략하여 코드를 더 간단히 할 수도 있다.
int[] score;
score = new int[]{ 50, 60, 70, 80, 90 }; // ok
score = { 50, 60, 70, 80, 90 }; // 에러!!! 

배열의 복사

  • arraycopy()를 사용해서 배열을 복사할 수 있다.

System.arraycopy(num, 0, newNum, 0, num.length);
-> num[0]에서 newNum[0]으로 num.length개수 만큼 복사