Chapter5. 배열

개발빼-엠·2023년 1월 30일

Java

목록 보기
5/8
post-thumbnail

1.배열

배열이란?

  • 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것
  • 많은 양의 값을 다룰 때 유용하다.
  • 배열의 각 요소는 서로 연속적이다.
int[] score = new int[5]; // 5개의 int값을 저장할 수 있는 배열을 생성한다.

배열의 선언과 생성

  • 타입 또는 변수이름 뒤에 대괄호를 붙여서 배열을 선언한다.
int[] score;
int sroce[];
  • 배열을 선언한다고 해서 값을 저장할 공간이 생성되는 것이 아니라 배열을 다루는데 필요한 변수가 생성된다.
int[] score;          // 배열을 선언
score = new int[5];   // 배열을 생성

배열의 초기화

  • 생성된 배열에 처음으로 값을 저장하는 것
// 1번
int[] score = {100, 90, 80, 70, 60};

// 2번
int[] score = new int[] {100, 90, 80, 70, 60};

1번은 2번의 생략버전으로 많이 사용되지만 꼭 2번처럼 작성해야 하는 경우도 있다.

// 경우1

// ERR
int[] score;
score = {100, 90, 80, 70, 60}; 

// OK
int[] score;
score = new int[] {100, 90, 80, 70, 60}; 
// 경우 2
// 메소드로 받을 경우

int result = method({100, 90, 80, 70, 60}); // ERR
int result = method(new int[]{100, 90, 80, 70, 60}); // OK

배열의 복사

  • for문을 이용한 배열의 복사
  • System.arraycopy()를 이용한 배열의 복사 → for문보다 빠르다.
System.arraycopy(arr1, 0, arr2, 0, arr1.length);
// arr1[0]에서 arr2[0]으로 arr1.length개의 데이터를 복사

2.String 배열

String클래스는 char배열에 기능(메서드)을 추가한 것이다.

그래서 char배열을 사용하는 것보다 String클래스를 사용하는 것이 문자열을 다루기 더 편리하다.

char배열과 String클래스의 한 가지 중요한 차이는 String객체(문자열)는 읽을수만 있을 뿐 내용을 변경할 수 없다는 것이다.

String str = "Java";
str = str + "8";
System.out.println(str); // "Java8"

문자열 str의 내용이 변경되는 것 같지만, 문자열은 변경할 수 없으므로 새로운 내용의 문자열이 생성된다.

String클래스의 주요 메서드 Page.209

3.다차원 배열

다차원 배열의 선언과 생성

‘[]’의 개수가 차원의 수를 의미한다.

int[][] score;
int score[][];
int[] score[];

int[][] score = new int[5][3]; // 5행 3열의 2차원 배열을 생성한다.

가변배열

다차원 배열에서 마지막 차수의 크기를 지정하지 않고 각각 다르게 지정

int[][] score = new int[5][];
score[0] = new int [4];
score[1] = new int [3];
score[2] = new int [2];
score[3] = new int [2];
score[4] = new int [3];

0개의 댓글