무지개 곰
무지개곰의 성장이야기
무지개 곰
250x250
  • 분류 전체보기
    • 블록체인 공부
      • BlockChain
      • Ethereum
    • IT공부
      • Java
      • JavaScript
      • HTML + CSS
      • React
      • 프로그래머스 (TypeScript)
    • 독서
    • 영어 공부
      • 1일 1 작문
      • 영어 짧은 글
    • 홍보
hELLO · Designed By 정상우.
무지개 곰

무지개곰의 성장이야기

[Java] Java의 배열의 종류와 각각의 배열 이해하기
IT공부/Java

[Java] Java의 배열의 종류와 각각의 배열 이해하기

2022. 7. 7. 12:00
728x90

배열의 종류

  • 1차원 배열
  • 다차원 배열
  • 배열의 길이
  • 배열 복사하기

1차원 배열

배열은 같은 자료형을 가지는 변수들을 순차적으로 관리할 수 있는 기능입니다. 선언 방법은 아래와 같습니다.

int[] answer = new int[3]; //배열의 길이만 정하는 선언 방
//int a;느낌

위의 선언을 통하여 생성되는 변수는 answer[index] 형식으로 생성이 되며 index값은 0부터 위에서 선언한 길이만큼 채워진다. 1부터 채워지는 것이 아니기 때문에 길이가 n인 경우 index값은 n-1까지 생성됩니다. 따라서 위의 선언을 통하여 생성된 변수는 answer[0], answer[1], answer[2]로 3개가 생성됩니다. 위의 방식은 배열의 길이만 설정하여 변수를 생성하는 방벙이고 생성과 동시에 값을 채워주는 방법은 아래와 같습니다.

int[] answer = {2,1,4}; //배열의 길이와 값을 동시에 선언하는 방법
//int a=5;느낌

위의 방식으로 선언을 하면 길이가 3인 배열을 생성하면서 answer[0]에는 2가 answer[1]에는 1이 answer[2]에는 4가 저장됩니다. 이러한 식으로 같은 자료형을 가지는 관련된 변수들이 여러 개 필요한 경우 사용하여 코드를 간략히 할 수 있습니다.


다차원 배열

2차원 배열과 3차원 배열이 있습니다. 2차원 배열 먼저 알아보고 3차원 배열 알아보도록 하겠습니다.

2차원 배열

int[][] coordinate = new int[2][3];

배열의 공간만 선언하는 방식입니다. 체스판 같은 공간이 생긴다고 생각하시면 편합니다. 배열에 들어가는 값은 체스판의 말들로 생각을 하시면 됩니다. 배열 선언과 동시에 값을 선언하는 방법을 예시로 보이겠습니다.

int[][] coordinate = {{2,1,3},{5,6,0}};

1차원 배열에서 값을 넣으며 배열을 선언하는 방법과 비슷합니다. 다만 2차원이기 때문에 1차원 배열을 두 번 선언하는 느낌으로 사용됩니다. 위의 선언을 표로 표현하면 아래와 같습니다.

coordinate[a][b] b=0 b=1 b=2
a=0 2 1 3
a=1 5 6 0

표와 같이 2행 3열로 나타나 집니다. a의 값은 행을 나타내고 b의 값은 열을 나타냅니다. 1차원과 마찬가지로 index값이 0부터 입력되므로 값을 불러올 때 주의하셔서 index 값을 입력하여야 합니다.

3차원 배열

int[][][] cube = new in[2][3][4];

공간만 선언하는 방식은 위와 같습니다. 1차원 2차원 배열과 크게 다르지 않습니다. 쉽게 생각한다면 2차원 배열의 모양이 여러 개 있다고 생각하시면 편합니다. index가 cude[a][b][c]처럼 a, b, c로 되어있다면 [b][c]를 index로 가지는 2차원 배열이 a개만큼 있는 구조입니다.

int[][][] cube = {{{0,1,2},{3,4,5}},{{6,7,8},{9,10,11}}};

 위의 방식은 배열을 선언과 동시에 값을 넣는 방법이며 위의 경우는 new int[2][2][3]로 선언한 배열과 같은 크기를 가지게 됩니다.


배열의 길이

배열의 길이를 확인하는 방법은 length를 사용하면 길이를 알 수 있습니다. 각 차원마다 예시를 통하여 설명하겠습니다.

1차원 배열

int[] answer = new int[5]; //index값이 최대 4
System.out.println(answer.length);//출력 값이 5

1차원 배열의 경우 예시입니다. 1차원 배열은 어려울 것 없이 배열의 길이는 선언해준 배열의 길이를 가지고 오게 됩니다.

2차원 배열

int[][] coordinate = new int[2][3];//2행3열의 배열생성
System.out.println(coordinate.lenghth);//출력 값은 2

2차원 배열의 경우 위와 같이 2행 3 열인 경우 배열의 길이는 변수가 들어갈 수 있는 공간인 6이 되는 것이 아니라 행의 길이인 2가 나오게 됩니다. 그렇다면 열의 길이를 알기 위한 방법의 예시는 아래와 같습니다.

System.out.println(coordinate[0].length);//1행의 길이를 출력
System.out.println(coordinate[1].length);//2행의 길이를 출력

2차원 배열이란 1차원 배열을 행으로 나열한 것으로 보기 때문에 각 행에 1차원 배열이 있으므로 열의 길이를 확인하기 위해서는 위와 같이 사용하시면 됩니다.

3차원 배열

3차원 배열의 경우 2차원 배열과 비슷합니다.

int[][][] cube = new int[2][3][4];

위와 같이 선언된 경우를 예시로 들어서 설명드리겠습니다.

System.out.println(cube.length);//출력 값은 2

cube[2][3][4]를 나누어서 생각을 한다면 배열 이름이 cube라는 길이가 2인 배열이 있고 그 안에 값으로 3행 4열의 배열이 들어가는 형식입니다. 그렇기 때문에 위와 같이 단순히 cube.length를 한다면 2가 나오게 됩니다.

System.out.println(cube[0].length);//출력 값은 3
System.out.println(cube[1].length);//출력 값은 3

마찬가지로 위의 경우는 cube[index]를 coordinate로 보신다면 이름이 cube[0] 과 cube[1]인 길이가 3인 배열 즉 coordinate[3][4]로 생각을 하시면 됩니다. 따라서 위의 경우는 길이가 3으로 출력됩니다.

System.out.println(cube[0][2].length);//출력 값은 4

위의 설명과 마찬가지로 진행이 되기 때문에 길이가 4인 배열이 나오게 됩니다. cube[a][b]를 1차원 배열에서 선언하였던 answer이라고 생각을 한다면 answer[4]로 생각하시면 됩니다.


배열 복사하기

int[] arrayOne = {1,3,5,7,9};
int[] arrayTwo = {2,4,6,8,10};

System.arraycopy(arrayOne,2,arrayTwo,3,2);

배열을 복사하는 명령어는 arraycopy입니다. 위와 같이 System.arraycopy를 이용하면 됩니다. 소괄호 안에는 순서대로 복사를 할 배열의 이름, 복사를 시작할 index값, 붙여 넣을 배열의 이름, 붙여 넣기 시작할 index값, 복사할 값의 개수입니다. 위의 같은 경우 복사 후에 arrayTwo배열의 값은 아래와 같이 변경됩니다.

for(int i=0;i<arrayTwo.length;i++){
    System.out.println(arrayTwo[i]);
}
//출력은 2,4,6,3,5
//arrayTwo={2,4,6,3,5}가 됩니다.

만약 아래와 같이 복사한 개수가 붙여 넣을 배열의 크기보다 크면 오류가 납니다.

int[] arrayOne = {1,3,5,7,9};
int[] arrayTwo = {2,4,6,8,10};

System.arraycopy(arrayOne,2,arrayTwo,3,3);
//붙여넣을 자리는 2칸 붙여 넣을 값은 3개

 

728x90
저작자표시 비영리 변경금지 (새창열림)
    'IT공부/Java' 카테고리의 다른 글
    • [Java] Java의 ArrayList 이해하기
    • [Java] Java의 객체 배열 이해하기
    • [Java] Java의 캡슐화 이해하기
    • [Java] Java의 싱글톤(singleton) 이해하기
    무지개 곰
    무지개 곰
    java solidity react javascript등 프로그래밍 공부 기록

    티스토리툴바