[Javaの定式]Chapter 5アレイ(24)


Chapter 5. 整列


24.Arraysを使用したアレイの処理

  • Arraysクラスはアレイを処理するための有用な方法を提供している
  • 常用方法概要(第11章で深化)
  • 🌼配列の比較と出力-equals()、toString()

  • toString()
  • toString()アレイ内のすべての要素を文字列に簡単に出力できる
  • 1次元アレイのみ
  • 多次元配列含むdeepToString()使用
  • int[] arr = {0,1,2,3,4};
    int[][] arr2D = { {11,12},{21,22} };
    
    System.out.println(Arrays.toString(arr)); //[0,1,2,3,4]
    System.out.println(Arrays.deepToString(arr2D)); //[[11,12][21,22]]
  • equals()
  • 両アレイに格納されている全ての要素を比較같으면 true다르면 false返却
  • 1次元アレイのみ
  • 多次元配列含むdeepEquals()使用
  • String[][] str2D = new String[][]{{"aaa","bbb"},{"AAA","BBB}};
    String[][] str2D2 = new String[][]{{"aaa","bbb"},{"AAA","BBB}};
    
    System.out.println(Arrays.equals(str2D, str2D2)); //false
    System.out.println(Arrays.deepEquals(str2D, str2D2)); //true

    🌻配列のコピー-copyOf()、copyOfRange()

  • copyOf():アレイ全体を新しいアレイにコピーして返却
  • copyOfRange():アレイの一部をコピーし、新たなアレイとして戻すが、指定範囲の末尾は含まない
  • int[] arr = {0,1,2,3,4};
    int[] arr2 = Arrays.copyOf(arr,arr.length); //arr2=[0,1,2,3,4]
    int[] arr3 = Arrays.copyOf(arr, 3); //arr3=[0,1,2]
    int[] arr4 = Arrays.copyOf(arr, 7); //arr4=[0,1,2,3,4,0,0]
    int[] arr5 = Arrays.copyOfRange(arr, 2, 4); //arr5=[2,3] : 4는 불포함
    int[] arr6 = Arrays.copyOfRange(arr, 0, 7); //arr6=[0,1,2,3,4,0,0]

    🌷配列のソート-sort()

  • 配列時sort()使用(第11章深化)
  • int[] arr = {3,2,0,1,4}
    Arrays.sort(arr); //배열arr을 정렬
    System.out.println(Arrays.toString(arr)); //[0,1,2,3,4]