배열

9mond·2023년 7월 9일
0
post-thumbnail

1. 배열이란?

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

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

  • 배열의 선언
	데이터형[] 배열이름;
  • 배열의 생성 : 변수를 저장할 수 있는 사물함을 생성한다.
	배열이름 = new 데이터형[크기];
  • 예:

    		int [] grade;		// 여러 개의 int형 변수를 저장할 수 있는 배열생성
    		grade = new int[3];	// 배열의 칸을 3칸으로 할당
    
  • 배열의 선언과 크기 지정에 대한 일괄처리. 대부분의 경우 이렇게 한다.

	데이터형[] 배열이름 = new 데이터형[크기];
  • 배열 생성의 예:
	int[] grade = new int[3];

1-2. 배열의 모양

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

    인덱스의 범위는 0부터 '배열길이 - 1'까지

1-3. 배열의 값을 저장하기

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

1-4. 점수를 배열로 표현

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

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

  • 배열의 크기를 지정하면서 괄호 "{...}" 안에 배열에 포함될 각 항목들을 콤마(,)로 나열하면, 배열의 생성과 값의 할당을 일괄처리할 수 있다.
    이 때는 배열의 크기를 별도로 지정하지 않으며, new 데이터형[]부분은 생략 가능하다.
	데이터형[] 배열이름 = new 데이터형{1,2, ...};
혹은	
	데이터형[] 배열이름 = {1,2, ...};
  • 다만 배열의 선언과 생성을 따로 하는 경우에는 생략할 수 없다는 점을 주의하자.
    	 int[] score;
        score = {50,60,70,80,90,};				// error발생
        
        score = new int[]{50,60,70,80,90,};		// good

1-6. 배열 값 사용하기

  • 배열 안에 저장되어 있는 값들을 사용하여 연산이나 출력등의 처리를 위해서는 배열에 부여된 인덱스 값을 통해서 데이터에 접근해야 한다.
	System.out.println( grade[2] );
	System.out.println( grade[0] );

1-6. 배열과 반복문

  • 배열의 특성
    -> 0 ~ (배열 크기 - 1) 만큼의 인덱스 값을 순차적으로 갖는다.
  • 이러한 특성을 활용한 배열의 데이터 처리
    -> 일정 범위를 갖고 순차적으로 증가하는 인덱스 값의 특성을 활용하면 반복문 안에서 배열의 값을 할당하거나, 할당된 값을 읽어들이는 처리가 가능하다.
	int[] grade = new int[]{100, 100, 90};

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

1-7. 배열의 크기(길이)

  • 배열의 길이를 얻기 위해서는 배열이름.length 형식으로 접근하게 된다.
  • grade라는 배열을 생성한 경우 배열의 길이
	int size = grade = grade.length;

	---------------------------------------------------

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

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

1-8. 배열의 종류

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

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

1-9. 2차원 배열의 생성

  • 2차원 배열 선언
    -> 데이터 타입의 이름 뒤에 대괄호 [] 에 대하여 각각 지정한다.
	데이터형[][]배열이름;
  • 2차원 배열의 크기 할당
    -> 헹과 열에 대한 크기를 명시한다.
	배열이름 = new 데이터형[][];
  • 2차원 배열의 선언과 할당일괄처리
	데이터형[][] 배열이름 = new 데이터형[][];
  • 2차원 배열의 선언, 크기할당, 값의 대입에 대한 일괄처리
    -> 2차원 배열의 경우 블록 괄호 {} 를 2중으로 겹쳐서 2차원 배열을 표현한다.
    ->행과 열의 구분에는 콤마(,) 가 사용된다.
    -> 컴파일러가 블록괄호{} 의 요소를 파악하면 행, 열의 크기가 산출될 수 있으므로 배열의 크기 설정을 위한 [][]에는 배열의 크기를 명시하지 않는다.
	데이터형[][] 배열이름 = new 데이터형[][]{
		{00열의 값, 01열의 값, 0행n열의 값},
		{10열의 값, 11열의 값, 1행n열의 값},
		...
		{n행0열의 값, n행1열의 값, n행n열의 값},
	};

1-10. 행, 열에 대한 인덱스를 통하여 값을 대입한다.

	배열이름[][] =;

1-11. 행의 길이

  • 1차 배열의 길이는 2차 배열에서는 행의 크기로 조회된다.
	int rows = grade.length;

1-12. 열의 길이

  • 열의 길이는 각 행에 대하여 개별적으로 조회해야 한다.
	int cols = grade[].length;
profile
개발자

0개의 댓글