본문 바로가기

JAVA/국비 공부

3월9일수업(배열)

Array (배열) - 참조형 데이터 타입 중 하나.

배열이란,

여러개의 똑같은 데이터 타입을 가지고

똑같은 목적을 가진 변수를 다룰때
일일이 다 따로따로 만들어주는 것이 아니라 전부를 하나의 이름을 묶어주고 
각각을 이름 대신 번호로 접근 하는 방식을 사용하는 데이터 타입이다.

배열은 다음과 같이 선언한다.


데이터타입[ ] 배열이름 = new 데이터 타입[크기]

배열의 경우, 우리가 각각의 변수에 이름을 주는 방법이 아니고
대신 위치번호 (=index)라는 것을 사용하여
" 배열의 몇번째의 현재 값을 호출하라 " 혹은 " 배열의 몇번째에 이 값을 초기화 하라 " 요런식으로 사용을 하게된다.

단, 컴퓨터의 경우 순서를 셀 때 
1부터 세지 않고 0부터 세기 때문에 가능한 인덱스 범위는 0부터 크기 -1 까지 이다.

 


 배열이 어떤 데이터 타입의 배열인지에 따라서  각 요소(element)의 값들이 결정된다.
       

기본형 데이터 타입의 배열일 경우, 모든 element는 0 으로 초기화 된다.
       

참조형 데이터 타입의 배열일 경우, 모든 element는 null로 초기화 된다.

        null
        참조형 데이터 타입에서만 발견되는 특수한 상태를 나타내는 값인데
        스택영역에 메모리값이 부여되어있지만,

힙 영역에 해당공간은 초기화가 안되어 있는 상태를  null이라 한다.
         --> 비유 (청약) - 아직 건물은 없지만 땅은 확보된 상태를 null

 null상태일때는 아무런 것도 할 수없다.

 

예를 들어,

 

우리가 null인 상태를 가진 String 객체를 equals( ) 메소드를 실행시킨다면?

 

String str = null;

str.equals("abc"); --> err Cannot invoke "String.equal(Object)"


1. 배열을 선언할 때 우리가 반드시 크기를 지정해주어야하는데
    이때는 0 이상의 숫자가 크기에 들어가야한다.

    또한, 변수 혹은 상수를 사용해서 크기를 지정해 줄 수 있다.

 

 

2. 우리가 배열의 각 index를 통해서 해당 배열의 element를 접근하는데,
    이때에는 index에 우리가 변수를 사용해 줄 수도 있다.

    즉, for 문을 사용해서,  array의 각 인덱스에 값을 넣거나 출력할 수도 있다.

     배열의 각 element(요소)는 우리가 배열이름 [해당 인덱스] 로 접근하게 된다.

for문을 사용해서 array의 전체 내용을 출력해보자.

 

package day0309;
public class Ex01Arrary01 {

    public static void main(String[] args) {

        // 크기가 3인 int 배열을 만들어보자
        int[] array = new int[3];

        
        int size = 4;
        array = new int[size];

        for (int i = 0; i < size; i++) {
            // size보다 i가 작을때 출력 -> 그리고 출력하면 다시 올라가서 i++
            System.out.printf("array[%d]: %d\n", i, array[i]);
        }

        // array 배열의 1번에 값을 넣어보자
        array[1] = 24;

       
    }

}

 

 

index
          index란, 순서를 가지고 있고 무언가를 모아둔 데이터 타입에게는 모두 인덱스가 존재한다.
          즉, index란 순번과 같은 말이라고 생각하면 편하다.
          프로그래밍에서 index란 무조건 0에서 시작하고 해당 모음의 총 크기 -1이 마지막 인덱스가 된다.
          만약 유효하지 않은 index일 경우 ArrayIndexOutOfBoundsException(에러메세지)이 발생하게 된다.

 

i index에 -1을 넣으면?

System.out.println(array[4]);   -->  err: Index -1 out of bounds for length 4(크기가 4인 유효값에 벗어났다는 메세지)

 

단, 우리가 index 는 최소값이 0이다라는 것을 사용하여
      나중에 해당 배열에 어떤 element의 인덱스가 얼마인지 찾을 때
      찾지 못하는 경우, -1을 나오게 해서 그 엘리먼트는 해당 배열에 존재하지 않는다를 나타나게 할 수도 있다.
       index가 " -1 이라는 건 존재하지 않는다 "라는 말이 포인트!

       ( = 출석을 부르는데 그 반에 없는 학생이름을 불렀을때 -1이라는 메세지가 나타나는 것)

'JAVA > 국비 공부' 카테고리의 다른 글

3월9일수업(로또2번)  (0) 2021.03.09
3월9일 수업(로또01)  (0) 2021.03.09
3월8일수업(별찍기10)  (0) 2021.03.08
3월8일수업(별찍기09)  (0) 2021.03.08
3월8일 수업(별찍기08)  (0) 2021.03.08