본문 바로가기

JAVA언어의 기초

JAVA - 배열

 

 

자바에서 데이터를 저장하는 3가지 방법이 있다.

 

변수, 배열, 컬렉션

 

변수는 이전에 글로 봤을 것이다.

변수는 데이터 하나만 저장이 가능하며

데이터의 개수만큼 변수가 필요하다.

 

두 번째는 배열이다.

 

배열은 변수와 다르게 여러 개의 값을 저장할 수 있다.

하지만 크기변경이 불가하며

배열에 저장되는 데이터형은 동일해야한다.

 

배열 자체는 참조형이고 저장되는 데이터는

기본형도 되고 참조형도 가능하다.

 

 

마지막으로 컬렉션은

나중에 올리는 글에 다시 언급을 하겠다.

 

 

 

 

 배열(array)

 용도: 데이터 저장
 특징: 참조형 데이터이다. 
      참조형인 배열은 반드시 저장영역을 만들 때 new 이용한다. (중요)
      저장되는 메모리는 heap이다.
      한번 생성된 배열은 크기 변경이 불가능하다. ( 크기를 늘리고 싶으면 배열을 다시 new 해야 된다. )
      배열에 저장되는 데이터는 기본형 및 참조형 모두 가능하다.
      1차원 및 다차원 배열 생성이 가능하다.

 사용방법:
  1) 배열 선언
    문법: 데이터형 [] 배열명;   // 배열명은 변수명과 동일

        // 기본형인 int 저장용
        int [] num;   or  int num [];

      * 구별해야 되는 것
        int num;  // num의 데이터타입은? int, 기본형
             num에 저장될 수 있는 값은? int인 정수


int [] num2;  // num2의 데이터타입은? int [], 참조형
                         num2에 저장될 수 있는 값은? 주소값

   2)  배열생성 ( new 이용 )

     문법: 배열명 = new 데이터타입[크기];

          num = new int [3];  // 크기 3을 가진 배열이 heap 메모리에 생성된다.
                     // heap에 생성되기 때문에 자동초기화가 된다.

   3) 배열요소접근
    문법: 생성된 배열의 인덱스(첨자) 사용해서 접근한다.
         인덱스는 0부터 시작한다. 배열길이보다 항상 1이 작다. 
 배열길이: 배열명. length

 

 

4) 배열요소 접근 방법

       가. 직접 인덱스 지정
      예> num [0]
  ==> 접근할 요소가 많으면 비효율적임.

       나. (일반) for문 이용
         예>
    for(int idx=0; idx < num.length; idx++){
               System.out.println( num [idx] );
    }
  ==> 단점은 조건을 잘못 지정하면 예외가 발생된다.

 

 

배열과 함께 쓰면 조금 더 좋은 for문이 있다.

 

이는 foreach문이라 하며

향상된 for문이라고도 불린다.

 

이것은

 

 향상된 for문 ( foreach 문 )

          문법: 
        for(변수: 배열명 ){
}

         예>  for( int n : num ){
 System.out.println(n);
      }

 

이렇게 쓰이며 

안의 조건식에 따라

for문을 쓰기 좋다.

 

 

마지막으로

위에선 배열을 쓰기 위하여

new

라는 키워드를 사용해야 한다 말하였다.

 

하지만 new를 사용하지 않고 쓸 수 있는데

이것을 new와 비교해서 설명해 보겠다.

 

 

 

 

 new 이용한 방법 이외의 방법 2가지 살펴보자
 
    1) new 이용
      예> int [] num;
          num = new int [3];
          num [0]=10;
  num [1]=20;
  num [2]=30;



    2) 리터럴(값) 이용 ( ************ )
    문법:
          데이터형 [] 배열명 = { 값, 값 2, 값 3,....  };
     
      예> int [] num = {10, 20, 30};

    특징: 한 번에 구현해야 된다.

         int [] num;
  num = {10, 20, 30}; // 에러 발생



    3) new + 리터럴 혼합 형태 ( *********)

    문법:
          데이터형 [] 배열명;
  배열명= new 데이터형 []{ 값, 값 2, 값 3,....  };
     
      예> int [] num;
          num = new int []{10, 20, 30};

 

 

이런 형태로 배열을 만들 수 있으며

앞으로의 코딩에 도움이 되길 바란다.

 

 

 

 

 

'JAVA언어의 기초' 카테고리의 다른 글

JAVA - 클래스  (0) 2024.03.26
JAVA - 2차원 배열  (2) 2024.03.25
JAVA - 반복문  (0) 2024.03.20
JAVA - 조건문  (0) 2024.03.19
JAVA - 연산자  (0) 2024.03.18