Chapter 5案


  • アレイのレプリケーションは、forゲートではなくシステムです.arraycopy()を使用するとより効果的です
    → System.arraycopy(num, 0, newNum, 0, num.length);
    →num[0]からnum.length個のデータをnewnum[0]
  • にコピーする
  • Stringクラスchar配列に機能(メソッド)
  • を追加
  • オブジェクト配列
    -> Book[] book = new Book[5];
    -> book[0], book[1] ... ブックの各オブジェクトのアドレス値を格納
    ->5個以外の5個のアレイ要素のオブジェクト
  •     Book[] library = new Book[5];
        Book[] copyLibrary = new Book[5];
    
        library[0] = new Book("태백산맥", "조정래");
        library[1] = new Book("태백산맥1", "조정래");
        library[2] = new Book("태백산맥2", "조정래");
        library[3] = new Book("태백산맥3", "조정래");
        library[4] = new Book("태백산맥4", "조정래");
    
        System.arraycopy(library, 0, copyLibrary, 0, 5);
    
        // copyLibrary 배열 전체 길이만큼 돌면서 element를 하나씩 꺼내서 book 변수에 넣겠다.
        for(Book book : copyLibrary) {
            book.showBookInfo();
        }
    1)浅いコピー:システム.arraycopyを使用してアドレスをコピーします(2つのオブジェクトarrayは同じを指します).
    2)深度コピー:インスタンスが認識可能であるため、値の変更は汎用部品に影響しないため、新規オブジェクトごとに値を代入する必要があります.

  • 強化されたfor文
      ArrayList<String> list = new ArrayList<>();
    
      list.add("aaa");
      list.add("bbb");
      list.add("ccc");
    
      for (int i = 0; i < list.size(); i++) {
          String str = list.get(i);
          System.out.println(str);
      }
    
      for (String str : list) {
          System.out.println(str);
      }