Home [Java basic] 06. 배열
Post
Cancel

[Java basic] 06. 배열

1. 배열 개요

배열(Array)이란

  • 여러 데이터를 하나로 묶은 것
  • 일련의 공간을 여러 칸으로 나눈 것
    1
    2
    3
    4
    
      int[] scores = { 88, 98, 68 }; // 정수형 배열
      System.out.println(scores[0]); // 88 출력
      System.out.println(scores[1]); // 98 출력
      System.out.println(scores[2]); // 68 출력
    
  • 배열은 중괄호로 묶인 원소들(5개의 정수)을 레퍼런스 변수(score)로 관리
    • reference 변수
      • 특정 대상을 가리키는 변수
      • reference 변수는 직접 값을 가지지 않고 값이 저장된 주소값을 가리킴

파이썬과 자바 배열 차이

  • 파이썬
    • 여러 타입의 데이터 저장 가능
      1
      
        list = [2, 'hello', 0.3] # 한 리스트에 정수, 실수, 문자 저장
      
  • 자바
    • 선언된 타입만 저장 가능
      1
      
        int[] list = { 2, 3, 4 } // 정수를 선언했기 때문에 정수만을 원소로 가질 수 있음
      

배열의 필요성

  • 수많은 데이터를 단 하나의 변수로 관리할 수 있음
  • 반복문과 함꼐 코드의 효율을 높일 수 있음

배열의 특징

  • 배열값은 모두 같은 타입이다.
  • 배열은 인덱스로 구분한다.
    • 인덱스(index)
      • 배열 공간을 번호로 구분한 것
      • 0부터 시작한다
  • 배열의 길이는 변하지 않는다.
    • 배열은 한번 만들어지면 그 길이가 변하지 않는다.
    • 배열의 길이는 length 키워드를 통해 가져올 수 있다.
      • 배열.length

2. 배열 기초

배열 만들기

초기화를 통한 생성

  • 중괄호 안에 초깃값을 명시하여 만드는 방법
    1
    
      int[] ages = { 25, 30, 21, 22 };
    

길이 지정을 통한 생성

  • 길이를 지정하여 만드는 방법
  • new 키워드, 배열 타입, 길이 정보를 명시
    1
    
      int[] ages = new ages[4];
    
  • 초깃값은 배열의 타입에 따라 바뀐다.
  • 정수형(0), 실수형(0.0), 논리형(false), 문자열(null)

배열 읽고 쓰기

  • 레퍼런스 변수에 인덱스를 명시하면 그 값을 가져오거나 변경 가능
    1
    2
    3
    4
    5
    
      // 배열 읽기
      레퍼런스변수명[인덱스]
    	
      // 배열 쓰기
      레퍼런스변수명[인덱스] = 변경할값
    

인덱스의 범위

  • 배열 사용시 인덱스의 범위를 주의하지 않으면 에러가 발생할 수 있다.

3. 배열의 활용

배열과 반복문

  • 배열을 활용해 반복문을 효과적으로 사용 가능
    1
    2
    3
    4
    5
    6
    
      int[] arr = { 1, 2, 3, 4, 5 };
      int sum = 0;
      for (int i = 0; i < arr.length; i++){
          sum += arr[i];
      }
      System.out.println(sum); // 1~5 더한 값 출력
    

메소드로 배열 전달하기

  • 배열은 메소드의 입력 변수로 전달될 수 있음
    1
    2
    3
    4
    5
    6
    7
    
      public static void main(String[] args){
          int[] points = { 1, 3, 5, 7 };
          double result = average(points); // 입력값으로 레퍼런스 변수 points 전달
      }
      public static double average(int[] arr){
          ...
      }
    

문자 타입과 배열

  • 문자열을 toCharArray()를 사용해 문자의 배열로 변경 가능
    1
    2
    
      String str = "ABCD";
      char[] charArr = str.toCharArray(); // = { 'A', 'B', 'C', 'D' }; 과 같음
    

4. 다차원 배열

이차원 배열

  • 기본 배열(일차원 배열)을 묶어 새로운 배열을 이루는 형태
    1
    2
    3
    
      int[] row1 = { 1, 2, 3, 4 };
      int[] row2 = { 5, 6, 7, 8 };
      int[][] matrix = { row1, row2 };
    
  • 일차원 배열처럼 미리 이차원 배열 공간을 할당 할 수 있다.
    1
    2
    
      // 10x10 배열 할당
      int[][] matrix = new int[10][10];
    
This post is licensed under CC BY 4.0 by the author.