/ JAVAJUNGSUK

Ch5-24. Arrays

자바의 정석 기초편

0. 목차



Chapter5. 배열

Ch5 - 24. Arrays로 배열 다루기



Ch5 - 24. Arrays로 배열 다루기


▶ 배열의 비교와 출력

▷ Arrays.equals() : 1차원 배열 비교
String[][] str2D = new String[][] { { "aaa", "bbb" }, { "AAA", "BBB" } };
String[][] str2D2 = new String[][] { { "aaa", "bbb" }, { "AAA", "BBB" } };

System.out.println(Arrays.equals(str2D, str2D2));

// console
false

비교불가

▷ Arrays.deepEquals() : 2차원 이상 다차원 비교
String[][] str2D = new String[][] { { "aaa", "bbb" }, { "AAA", "BBB" } };
String[][] str2D2 = new String[][] { { "aaa", "bbb" }, { "AAA", "BBB" } };

System.out.println(Arrays.deepEquals(str2D, str2D2));

// console
true
▷ Arrays.toString() : 1차원 배열 출력
int[] arr = { 0, 1, 2, 3, 4 };

System.out.println(Arrays.toString(arr));

// console
[0, 1, 2, 3, 4]
▷ Arrays.deepToString() : 2차원 이상 다차원 배열 출력
int[][] arr2D = { { 11, 12 }, { 21, 22 } };

System.out.println(Arrays.deepToString(arr2D));

// console
[[11, 12], [21, 22]]


▶ 배열의 복사

▷ copyOf(메서드, 복사 수)

arr의 0 ~ 복사 수까지 복사

  • Arrays.copyOf(arr, arr.length);
      int[] arr = {0, 1, 2, 3, 4};
      int[] arr2 = Arrays.copyOf(arr, arr.length);
        
      System.out.println(Arrays.toString(arr2));
        
      // console
      [0, 1, 2, 3, 4]
    
  • Arrays.copyOf(arr, 3);
    int[] arr = {0, 1, 2, 3, 4};
    int[] arr3 = Arrays.copyOf(arr, 3);
      
    System.out.println(Arrays.toString(arr3));
      
    // console
    [0, 1, 2]
    
  • Arrays.copyOf(arr, 7);
    int[] arr4 = Arrays.copyOf(arr, 7);
      
    System.out.println(Arrays.toString(arr4));
        
    // console
    [0, 1, 2, 3, 4, 0, 0]
    
▷ copyOfRange(메서드, 복사 범위의 첫 인덱스, 복사 범위의 마지막 인덱스)

from ~ to의 개념
첫 인덱스 ~ 마지막 인덱스
toto - 1 : [마지막 인덱스]미포함 [마지막 인덱스 - 1]포함

  • Arrays.copyOfRange(arr, 0, arr.length);
    int[] arr = {0, 1, 2, 3, 4};
      
    int[] arr5 = Arrays.copyOfRange(arr, 0, arr.length);  // arr의 [0] ~ [5 - 1]
      
    System.out.println(Arrays.toString(arr5));
      
    // console
    [0, 1, 2, 3, 4]
    
  • Arrays.copyOfRange(arr, 2, 4);
    int[] arr = {0, 1, 2, 3, 4};
      
    int[] arr6 = Arrays.copyOfRange(arr, 2, 4); // arr의 [2] ~ [4 - 1]
      
    System.out.println(Arrays.toString(arr6));
      
    // console
    [2, 3]
    
  • Arrays.copyOfRange(arr, 3, 9);
    int[] arr = {0, 1, 2, 3, 4};
      
    int[] arr7 = Arrays.copyOfRange(arr, 3, 9); // arr의 [3] ~ [9 - 1]
      
    System.out.println(Arrays.toString(arr7));
      
    // console
    [3, 4, 0, 0, 0, 0]
    


▶ 배열의 정렬 - 오름차순

▷ sort()
int[] arr = {4, 5, 3, 2, 1};
Arrays.sort(arr);

System.out.println(Arrays.toString(arr));

// console
[1, 2, 3, 4, 5]