본문 바로가기
카테고리 없음

자바(java)의 이차원 배열

by 샤샤샤샤 2023. 1. 23.

이차원 정수 배열

리스트 안에 리스트가 존재하는 배열을 말한다.

{ { 123}, {124}, {125} } 같은 형식을 말한다.

이해하기 쉽게 표처럼 행, 열을 따진다.

말로하면 어렵지만, 그냥 실물을 한번 보면 이해가 되니 읽는게 더 빠르다.

public class ex64 {
    public static void main(String[] args) {
        //2차원 정수배열
        //  2행 2열
        //               1열 2열 COLUMN
        int[][] nums = { {10, 20}, //1행 ROW
                         {30, 40}  //2행
                       };
                           //행index 열index
        System.out.println( nums[0][0] );
        System.out.println( nums[0][1] );
        System.out.println( nums[1][0] );
        System.out.println( nums[1][1] );

        //길이만 있는 배열 선언
        int[][] nums2 = new int[2][2];
        nums2[0][0] = 10;
        nums2[0][1] = 20;
        nums2[1][0] = 30;
        nums2[1][1] = 40;
        System.out.println( nums2[0][0] );
        System.out.println( nums2[0][1] );
        System.out.println( nums2[1][0] );
        System.out.println( nums2[1][1] );

        //2차배열을 for문으로 순환 - 2중 for문으로
        //행 인덱스 : i
        //열 인덱스 : j
        //2차배열의 행 길이 : 배열이름.length
        //2차배열의 열 길이 : 배열이름[행인덱스].length
        for( int i=0; i<nums.length; i++ ){
            for(int j=0; j<nums[i].length; j++){
                System.out.println(nums[i][j]);
            }
        }
        //향상된 for문으로 2차배열 순환
        for( int[] arrNum : nums ){
            for( int num : arrNum ){
                System.out.println( num );
            }
        }

    }
}
import java.util.Random;

public class ex65 {
    public static void main(String[] args) {
        //연습문제 44
        //1. 2차원 정수배열 nums를 행 3개, 열 3개로 만들고,
        // 모든 행열에 값을 넣되,
        // 랜덤값 정수 1~100 사이의 값을 넣고,
        // 전체를 순환하여 출력하시오.
        //2. 최소값과 최대값을 출력하시오.
        int[][] nums = new int[3][3];
        Random rand = new Random();
        for(int i=0; i<nums.length; i++){
            for(int j=0; j<nums[i].length; j++){
                nums[i][j] = rand.nextInt(100)+1;
            }
        }
        for( int[] arrNum : nums ) {
            for( int num : arrNum ){
                System.out.println( num );
            }
        }
        //최소값/최대값 찾기
        int min = Integer.MAX_VALUE;
        int max = Integer.MIN_VALUE;
        for( int[] arrNum : nums ) {
            for( int num : arrNum ){
                if( min > num ){
                    min = num;
                }
                if( max < num ){
                    max = num;
                }
            }
        }
        System.out.println( min );
        System.out.println( max );

        //연습문제 45
        // 순돌이네 인쇄소
        // 3x3 2차원 정수배열에 아래와 같은 숫자가 들어있다면,
        // 0 1 0      공백 * 공백
        // 1 2 0   =>  *  +  공백
        // 1 0 0       *  공백 공백
        // 이렇게 출력이 된다.
        // 0 1 2
        // 1 2 0
        // 2 1 0 이렇게 들어가 있을때 출력결과를 표시하시오.
        int[][] data = { {0, 1, 2},
                         {1, 2, 0},
                         {2, 1, 0} };
        for( int[] arrData : data ) {
            for( int d : arrData ){
                if( d == 0 ){
                    System.out.print(" ");
                }
                else if( d == 1 ){
                    System.out.print("*");
                }else{
                    System.out.print("+");
                }
            }
            System.out.println();
        }

    }
}