배열

박상윤·2022년 8월 15일

📌 배열

같은 데이터 타입의 변수들이 하나의 집합 형태로 이루어진 자료구조

  • index와 element로 구성
  • java에서 Arrays라는 기본 클래스를 지원

📍 1차원 배열

  • 고정된 길이를 가진 배열
  • 같은 데이터 타입의 변수들이 집합의 형태를 이루고 있다.
  • 데이터 타입은 기본 타입과 참조 타입 모두 온다.

선언하기

package chapter5;

public class FirstDimensionArray {
    public static void main(String[] args) {
        int[] firstArray;
        int secondArray[];

        //Array 선언 및 생성
        int[] thirdArray = new int[3];
    }
}

초기화 하기

package chapter5;

public class FirstDimensionArray {
    public static void main(String[] args) {
        int[] firstArray = {1,2,3};
        int secondArray[] = new int[]{1,2,3};

        //Array 선언 및 생성
        int[] thirdArray = new int[3];
    }
}

📍 초기화 값

📍 배열 활용

배열 내부의 값 다 더하기

package chapter5;

public class SummationFirstDimensionArray {
    public static void main(String[] args) {
        int[] scores = new int[]{85,77,90};
        int sum = 0;
        for(int i = 0; i < scores.length; i++){
            sum+=scores[i];
        }

        System.out.println(sum);
    }
}

출력결과

📌 다차원 배열

배열의 요소로 배열을 갖는 것

📍 2차원 배열

배열의 요소로 1차원 배열을 가지는 배열

선언

package chapter5;

public class SecondDimensionArray {
    public static void main(String[] args) {
        int [][] firstArray;
        int[] secondArray[];
        int thirdArray[][];
        
        // 2차원 배열 선언 및 생성
        int [][] fourthArray = new int[2][3];
        
    }
}

초기화

int [][] firstArray = {
                {1,2,3},
                {4,5,6}
        };

📍 가변 배열

2차원 배열 중 각 행마다 다른 길이를 갖는 배열

  • 사용하지 않은 공간은 생성을 하지 않으므로 메모리를 효율적으로 사용이 가능하다.

📍 배열의 활용

Enhanced for문

  • 배열의 요소를 변경하는데에는 적합하지 않다.
  • 배열 요소를 변경하는 경우 index로 접근하는 방식을 사용한다.

배열의 복사

4가지 방법

package chapter5;

import java.util.Arrays;

public class CopyOfArray {
    public static void main(String[] args) {
        int []origin = new int[]{1,2,3,4,5};
        int newArrayLength = 10;

        // 방법 1 System.arraycopy 메소드 사용
        int[] firstCopyArray = new int[newArrayLength];
        System.arraycopy(origin,0,firstCopyArray,0,origin.length);

        //방법 2 Arrays.copyOf 메소드
        int[] secondCopyArray = Arrays.copyOf(origin,newArrayLength);

        //방법 3 clone 메소드
        int[] thirdCopyArray = (int[]) origin.clone();

        //방법 4 하나씩 값을 할당해주기
        int[] fourthCopyArray = new int[newArrayLength];
        for(int i = 0; i < origin.length; i++){
            fourthCopyArray[i] = origin[i];
        }

    }
}

📍 과제

  1. 반복문을 사용해서 구구단 출력하기
  • 배열 사용
package chapter5;

public class task1 {
    public static void main(String[] args) {

        int[] firstArray = {1,2,3,4,5,6,7,8,9};

        System.out.println(firstArray);

        for(int i=0;i<=8;i++){
            for(int j=0;j<=8;j++){
                System.out.printf("%d * %d = %d\n",firstArray[i],firstArray[j],firstArray[i]*firstArray[j]);
            }
            System.out.println();
        }
    }
}
  1. 반복문을 이용해서 구구단 중 홀수 단 출력해보기
  • Enhanced for문 사용
package chapter5;

public class task2 {
    public static void main(String[] args) {
        int[] firstArray = {1,2,3,4,5,6,7,8,9};

        for(int num:firstArray){

            if(num%2==0){
                continue;
            }

            for(int num2:firstArray){
                System.out.printf("%d * %d = %d\n",num,num2,num*num2);
            }
            System.out.println();
        }
    }
}
profile
BE 공부 블로그입니다

0개의 댓글