Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

codingfarm

배열(Array) 본문

Programming Language/JAVA

배열(Array)

scarecrow1992 2020. 11. 1. 22:31

배열 생성

  • Java에서 정수형 배열을 만드는 방법은 아래와 같다.
type[] varname;

int[] score;
string[] name;

 

type varname[];

int score[];
String name[];
  • 크게 2가지 방법이 지원되며 가능하면 전자의 방법을 사용하기를 추천한다.

 

int[] score = new int[5];

 

 

배열 초기화

  • 기본형 배열의 초기화
int[] score = new int[5];
score[0] = 100;
score[1] = 90;
score[2] = 80;
score[3] = 70;
score[4] = 60;
  • 참조형 배열의 초기화
String[] name = new String[3];
name[0] = new String("Kim");
name[1] = new String("Park");
name[2] = new String("Yi");
  • 요소를 하나씩 초기화 하기는 매우 까다롭다.
  • 그래서 자바는 아래처럼 선언과 동시에 한번에 초기화하는 방법을 제공한다.
int[] score = { 100, 90, 80, 70, 60 };
int[] score = new int[]{ 100, 90, 80, 70, 60 };

String[] name = { new String("Kim"), new String("Park"), new String("Yi") };
String[] name = { "Kim", "Park", "Yi" };
String[] name = new String[]{ new String("Kim"), new String("Park"), new String("Yi") };
  • 선언과 초기화를 따로 할 경우 아래의 방법을 쓴다.
int[] score;
score = { 100, 90, 80, 70, 60 };                 //에러 발생!!
score = new int[]{ 100, 90, 80, 70, 60 };     //OK
  • 함수의 argument로 int 배열을 받을 경우 
int add(int[] arr){/*내용 생략*/}

int result = add({ 100, 90, 80, 70, 60 });                //에러 발생!!
int result = add(new int[]{ 100, 90, 80, 70, 60 });    //OK
  • length 필드로 배열의 크기를 알 수 있다.
int[] score = {100, 90, 80, 70, 60 };

for(int i = 0; i < score.length; i++){
   System.out.println(score[i]);
}

 

 

다차원 배열

선언 방법 선언 예
type[][] varname; int[][] score;
type varname[][]; int score[][];
type[] varname[]; int[] score[];
int[][] score = new int[5][3];     //5행 3열의 2차원 배열을 생성한다.
  • 선언과 동시에 초기화 방법은 아래와 같다.
int[][] score = new int[][] {             // new int[][] 는 생략가능
                       {100, 100, 100}
                     , {100, 100, 100}
                     , {100, 100, 100}
                     , {100, 100, 100}
                     , {100, 100, 100}
                   };
  • 아래처럼 각 요소의 length로 길이를 확인 가능하다.
for (int i=0; i < score.length ; i++){
     for(int j=0; j< score[i].length; j++){
          score[i][j] = 10;
     }
}

 

가변 배열

  • 각 부분배열의 크기를 따로 설정할 수 있다.
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];
  • 중괄호를 이용해 생성과 동시에 초기화도 가능하다.
int[][] score = {
                     , {100, 100, 100, 100}
                     , {20, 20, 20}
                     , {30, 30}
                     , {40, 40}
                     , {50, 50, 50}
                  };

 

 

배열의 복사

  • arraycopy()를 사용하면 간단하게 배열을 복사할 수 있다.
int[] arr1 = {0, 1, 2, 3, 4};
int[] arr2 = new int[5];

System.arraycopy(arr1, 0, arr2, 0, arr1.length);    //arr1[0] 에서 arr2[0]으로 arr1.length개의 데이터를 복사한다.
  • 복사하려는 내용보다 여유공간이 적으면 ArrayIndexOutOfBoundsException이 발생한다.

 

'Programming Language > JAVA' 카테고리의 다른 글

변수  (0) 2020.11.02
객체지향 프로그래밍  (0) 2020.11.01
JVM의 메모리구조  (0) 2020.10.11
JDK(Java Development Kit)  (0) 2020.10.10
개요  (0) 2020.10.10
Comments