배열

배지원·2022년 9월 21일
0

JAVA

목록 보기
7/32
post-thumbnail

1. 1차원 배열

  • 배열(array)은 같은 타입의 변수들로 이루어진 유한 집합으로 정의된다.
  • 배열을 구성하는 각각의 값을 배열 요소(element)라고 하며, 배열에서의 위치를 가리키는 숫자는 인덱스(index)라고 한다.
  • 배열은 선언되는 형식에 따라 1차원 배열, 2차원 배열뿐만 아니라 그 이상의 다차원 배열로도 선언할 수 있다.

(1) 1차원 배열

  • 1차원 배열은 가장 기본적인 배열로 다음과 같은 문법에 따라 선언된다
int[] num;

예시

        int[] arr = new int[10];
        int temp = 0;
        Random random = new Random();

        for(int i=0; i<arr.length; i++){        // 랜덤번호 생성
            arr[i] = (int)(Math.random()*100)+1;
        }
        for(int i = 0; i<arr.length; i++){      // 최댓값 구하기
            if(temp<arr[i]) {
                temp = arr[i];
            }
        }

        System.out.println(Arrays.toString(arr));   // 배열 전체 출력
        System.out.println("");
        System.out.println(temp);
    }

1. 2차원 배열

(1) 2차원 배열

  • 배열의 요소로 1차원 배열을 가지는 배열이다.
  • 1차원 배열의 배열 요소로 또 다른 1차원 배열을 사용하여 2차원 배열을 나타낼 수 있다.
 int[][] array4 = new int[3][4];		// 정수를 4개씩 담을 수 있는 배열이 3개 생
성된다.
 int[][] array = new int[][]{{1,2,3},{4,5,6}};	// 2차원 배열 초기화 방법1
 int[][] array = {{1,2,3},{4,5,6}}		// 초기화 방법2 (new int[][] 생략)

예제

int[][] score = {								
                {100, 100, 100},
                {20, 20, 20},
                {30, 30, 30},
                {40, 40, 40}
        };									// 배열 선언 및 초기화
        int sum = 0;
        for (int i = 0; i < score.length; i++){		// 2차원 배열
            for(int j =0; j<score[i].length; j++){
                System.out.printf("score[%d]{%d]=%d%n",i,j,score[i][j]);

            sum += score[i][j];
            }
        }
        System.out.println("sum ="+sum);

(2) Arrays 클래스

  • toString()
    : 배열의 모든 값 출력
    int[] arr = {0,1,2,3,4};					// 1차원 배열
    int[][] arr2D = {{11,12},{21,22}};			// 2차원 배열
    System.out.println(Arrays.toString(arr));		// [0,1,2,3,4]	== 1차원 배열일때 사용
    System.out.println(Arrays.deepToString(arr2D));	// [[11,12],[21,22]]  == 22차원 배열일때 사용
  • equals()
    : 배열을 비교할때 사용
    int[][] arr2D = new String[][]{{"aaa","bbb"},{"AAA","BBB"}};					// 1차원 배열
    int[][] arr2D2 = new String[][]{{"aaa","bbb"},{"AAA","BBB"}};			// 2차원 배열
    System.out.println(Arrays.equals(str2D, str2D2));		// false  == 1차원 배열일때 equals 사용함(현재 2차원 배열에 사용하므로 false 출력)
    System.out.println(Arrays.deepEquals(str2D, str2D2));	// true  == 2차원 배열에 사용
  • copyOf()
    : 배열 복사
    int[] arr = {0,1,2,3,4};
    int[] arr2 = Arrays.copyOf(arr,arr.length);   // arr2 = [0,1,2,3,4]
    int[] arr2 = Arrays.copyOf(arr,3);			  // arr3 = [0,1,2]		
    int[] arr2 = Arrays.copyOf(arr,7);		      // arr4 = [0,1,2,3,4,0,0,0]
    int[] arr2 = Arrays.copyOfRange(arr,2,4);     // arr5 = [2,3]    == 2~4까지(4는 제외)
    int[] arr2 = Arrays.copyOfRange(arr,0,7);     // arr6 = [0,1,2,3,4,0,0]
  • sort()
    : 배열 정렬
    int[] arr = {3,2,0,1,4};
    Arrays.sort(arr);
    System.out.println(Arrays.toString(arr));	  // [0,1,2,3,4]  == 오름차순 정렬
profile
Web Developer

0개의 댓글