JAVA

[JAVA] 배열

shb 2021. 10. 1. 11:02

1. 배열

1-1. 배열의 이해

- 변수를 그룹으로 묶은 형태의 한 종류로서, 사물함 같은 형태를 갖고 있다. 

- 하나의 배열 안에는 같은 종류(데이터 형)의 값들만 저장될 수 있다. 

 

1-2. 배열을 만드는 방법

- 배열의 선언

 

 데이터형[ ] 배열 이름;

 

- 배열의 생성 - 변수를 저장할 수 있는 사물함을 생성한다. 

 

 배열이름 = new 데이터형[크기];

 

- 배열 생성의 예 - 3개의 int형 변수를 저장할 수 있는 배열 생성

 

int[] grade; // 여러개의 int형 변수를 저장할 수 있는 배열의 선언
grade = new int[3]; // 배열의 칸을 3칸으로 할당

 


   - 배열의 선언과 크기 지정에 대한 일괄처리

데이터형[] 배열이름 = new 데이터형[크기];

   - 배열 생성의 예 - 3개의 int형 변수를 저장할 수 있는 배열 생성

int[] grade = new int[3];


1-3. 배열의 모양
  - 생성된 배열은 사물함과 같이 각각의 칸에 값들이 저장되고, 각각의 칸은 0부터
  일련번호가 지정된다. (일련번호 = 배열의 인덱스)

1-4. 배열에 값을 저장하기
  - 배열은 값을 저장할 수 있는 공간일 뿐, 그 자체가 값은 아니다.
  - 값이 대입되지 않은 경우, 숫자형은 0, boolean형은 false가 자동으로 대입된다.
  - 배열안에 값을 저장하기 위해서는 인덱스 번호를 사용하여 각각의 칸에 직접 값을
  대입해야 한다.

배열이름[인덱스] = 값;

   - 둘리의 점수를 배열로 표현한 예

int[] grade = new int[3];
grade[0] = 75;
grade[1] = 82;
grade[2] = 91;

1-5. 배열의 크기 설정과 값 할당에 대한 일괄처리
 - 배열의 크기를 지정하면서 괄호"{...}"안에 배열에 포함될 각 항목들을 콤마(,)
   로 나열하면, 배열의 생성과 값의 할당을 일괄처리할 수 있다. 이 때는 배열의 크기를
   별도로 지정하지 않으며, "new 데이터형[]"부분은 생략 가능하다.

데이터형[] 배열이름 = new 데이터형[]{ 값1, 값2, ..., 값n };
또는
데이터형[] 배열이름 = { 값1, 값2, ..., 값n };


1-6. 배열값 사용하기
  - 배열안에 저장되어 있는 값들을 사용하여 연산이나 출력등의 처리를 위해서는 배열에
   부여된 인덱스 값을 통해서 데이터에 접근해야 한다.

System.out.println( grade[0] );
System.out.println( grade[1] );
System.out.println( grade[2] );

1-7. 배열과 반복문
    - 배열의 특성
-> 0 ~ (배열 크기 -1) 만큼의 인덱스 값을 순차적으로 갖는다.
  
    - 특성을 활용한 배열 데이터의 처리
-> 일정 범위를 갖고 순차적으로 증가하는 인덱스 값의 특성을 활용하면 반복문 안에서 배열의 값을 할당하거나, 

할당된 값을 읽어들이는 처리가 가능하다.

// 배열의 인덱스는 0부터 전체 길이 3보다 작은 2까지이다.
int[] grade = new int[]{100, 100, 90};

for( int i = 0; i<3; i++ ){
// i번째 배열값에 대한 출력 처리
System.out.println(grade[i]);
}

1-8. 배열의 크기(길이)
   - 배열의ㅣ 길이를 얻기 위해서는 "배열이름.length"형식으로 접근한다.
   - grade라는 배열을 생성한 경우 배열의 길이
 
int size = grade.length;

   - 배열의 길이값은 주로 반복문의 조건식에서 반복의 범위를 지정하기 위하여
   사용된다.

int[] grade = new int[]{100, 100, 90};

for( int i = 0; i<grade.length; i++ ){
// i번째 배열값에 대한 출력 처리
System.out.println(grade[i]);
}


1-9. 배열의 종류
   - 1차 배열
-> 앞에서 살펴본 배열 처럼 한 줄만 존재하는 사물함 같이 구성된 배열
-> 행에 대한 개념이 없고, 열에 대한 개념만 존재하기 때문에 "배열이름.length"는 몇칸인지를 알아보는 기능이 된다.

   - 2차 배열
-> 1차 배열의 각 칸은 행이되고, 각각의 칸에 추가된 개별적인 
배열이 "열"의 개념이 되어 행렬을 구성하게 된다.

  1-10. 2차원 배열의 생성 방법
   - 2차원 배열의 선언
-> 데이터 타입의 이름뒤에 대괄호"[]"를 행과 열에 대하여 각각 지정한다.

데이터형[][] 배열이름;

   - 2차원 배열의 크기 할당
-> 행과 열에 대한 크기를 명시한다.

배열이름 = new 데이터형[행][열];



   - 2차원 배열의 선언과 할당의 일괄처리

데이터형[][] 배열이름 = new 데이터형[행][열];


 - 2차원 배열의 선언, 크기 할당, 값의 대입에 대한 일괄처리
-> 2차원 배열의 경우 블록 괄호 '{}'를 2중으로 겹쳐서 2차 배열을 표현한다.
-> 행과 열의 구분에는 콤마(,)가 사용된다
-> 컴파일러가 블록괄호 '{}'의 요소를 파악하면 행,열의 크기가 산출될 수
있으므로 배열의 크기 설정을 위한 [][]에는 배열의 크기를 명시하지 
않는다.

데이터형[][] 배열이름 = new 데이터형[][]{
{ 0행0열의 값, 0행1열의 값, ..., 0행n열의 값 },
{ 1행0열의 값, 1행1열의 값, ..., 1행n열의 값 },
...
{ n행0열의 값, n행1열의 값, ..., n행n열의 값 }
};

1-11. 사용예시
   - 2차 배열로 표현하면 다음과 같이 생성된다. 

int[][] grade = new int[3][3];

   - 일괄지정하는 경우

int[][] grade = new int[][]{
{ 75, 82, 91 }, { 88, 64, 50 }, { 100, 100, 90 }
};

1-12. 2차원 배열의 길이
    - 2차원 배열의 길이는 행에 대한 측면과 열에 대한 측면을 나누어서 생각해야
    한다
    - 행의 길이
-> 1차 배열의 길이는 2차 배열에서는 행의 크기로 조회 된다.

int rows = grade.length;

    - 열의 길이
-> 열의 길이는 각 행에 대하여 개별적으로 조회해야 한다.

int cols = grade[행].length;

'JAVA' 카테고리의 다른 글

[JAVA] 메서드와 클래스  (0) 2021.10.05
[JAVA] Scanner  (0) 2021.10.04
[JAVA] 반복문  (0) 2021.09.28
[JAVA] 형변환과 조건문  (0) 2021.09.24
[JAVA] 연산자  (0) 2021.09.24