배열

sey950·2023년 12월 24일

Java

목록 보기
5/12
post-thumbnail

배열이란?
변수를 그룹으로 묶은 형태의 한 종류. 사물함같은 형태
하나의 배열안에는 같은 종류(데이터형)의 값들만 저장될 수 있다.


1. 배열을 만드는 방법

- 배열의 선언

    데이터형 [] 배열이름;
    

- 배열의 생성

: '변수'를 저장할 수 있는 사물함을 생성

    배열이름 = new 데이터형 [크기];
    ex. int[] grade;
    grade = new int[3];
    

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

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

- 배열의 값을 저장하기

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

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

배열의 크기 설정과 값 할당에 대한 일괄 처리

-> 배열의 크기를 지정하면 괄호"{...}"안에 포함될 각 항목들은(,)로 나열하면, 배열의 생성과 값의 할당을 일괄처리 할 수 있다.

이때, 배열의 크기를 별도로 지정하지 않으며, "new 데이터형[]"부분은 생략.

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

배열값 사용

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

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

배열과 반복문


배열의 특성

: 0~(배열크기 -1)만큼의 인덱스 값을 순차적으로 갖는다.

특성을 활용한 배열 데이터의 처리

: 일정 범위를 갖고 순차적으로 증가하는 인덱스 값의 특성을 활용하면 반복문 안에헛 배열의 값을 할당하거나, 할당된 값을 읽어들이는 처리가 가능하다.

	for(int i=0; i<3; i++ {
    System.out.println(grade{i]); }
    

배열의 크기(길이)

배열의 길이를 얻기 위해서는 '배열이름.length' 형식으로 접근한다.
int size = grade.length;


배열의 종류

▶ 1차배열
▶ 2차배열
▶ 다차원배열

1차 배열
한 줄만 존재.
행에 대한 개념이 없고, 열에대한 개념만 존재하기 때문에 '배열이름,length'는 몇칸인지를 알아보는 기능이 된다.

2차 배열
1차 배열의 각 칸에 새로운 배열을 넣는 형태
1차 배열의 각 칸은 행이 되고, 각각의 칸에 추가된 개별적인 배열이 "열"의 개념이 되어 "행렬"을 구성.

<2차 배열의 선언>
'데이터 타입의 이름 뒤에 대괄호 "[][]"를 행과 열에 대하여 각각 지정.

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

<2차 배열의 크기 할당>
'행과 열에대한 크기 명시'

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

<2차 배열의 선언과 할당의 일괄처리>

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

<2차원 배열에 대란 값의 대입 방법>
행,열에 대한 인덱스를 통합하여 값을 대입

	배열이름[행][열] = 값;
    

<일괄지정하는 방법>

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

<2차원 배열의 길이>
2차원 배열의 길이는 행에대한 측면과 열에대한 측면을 나누어서 생각해야 한다.

  • 행의 길이

      int rows = grade.length;
      
  • 열의 길이

      int cols = grade[행].length;
profile
eun_0

0개의 댓글