1
1

More than 1 year has passed since last update.

Java ~配列~

Posted at

・配列とは

 配列とは、値をまとめて管理するオブジェクトのこと。

 配列の種類はデータ型[]ArrayListLinkedListHashMapの4種類ある。

・データ型[]

・多次元配列の作り方

  多次元配列とは、配列の中に配列を作ることである。

  データ型[][] 配列名 = new データ型[要素数][]で作成することができる。

  配列名[0] = new データ型[要素数]で2次元目の配列の個数を入れられる。

多次元配列図.png

・メソッド

・fillメソッド

  Arrays.fill(配列名, 入れたい要素) これを使うとすべての要素を“入れたい要素”にできる。すでにある要素も上書きされる。

・配列のコピー

・Arrays.copyOfを使った場合

copyOf
    int[] beCopied = {10, 20, 30};
    //Arrays.copyOf(コピーしたい配列, 長さ[2なら0, 1がコピーされる])
    int[] doingCopy = Arrays.copyOf(beCopied, 2);
    System.out.println(Arrays.toString(doingCopy));
    //-> [10, 20]

  

・System.arraycopyを使った場合

arraycopy
    int[] beCopied = {10, 20, 30};
    int[] doingCopy = new int[3] //配列の長さ
    //System.arraycopy(コピーしたい配列, コピーの開始位置, コピー先の配列, コピーする長さ)
    System.arraycopy(beCopied, 0, doingCopy, 0, 3);

・ディープ(deep)コピーとシャロー(shallow)コピー

・ディープコピーとは
   ディープコピーとは、完全なコピーを作るコピーのこと。コピーした後、コピー元が配列に変更を加えても、コピー先に影響は受けない。
    <b>シャローコピー</b>とは、見せかけのコピーを作るコピーのこと。コピーした後、コピー元が配列に変更を加えると、コピー先の配列も変更される。

・copyOfRange

 copyOfRangeメソッドとは、指定した範囲の要素を抜き出して、その要素を集めた配列を作成するメソッドである。
copyOfRange
    int[] copied = {10, 20, 30, 40, 50};
    //Arrays.copyOfRange(コピー元の配列, 開始位置, 終了位置)
    int[] doCopy = Arrays.copyOfRange(copied, 1, 3);

    System.out.println(Arrays.toString(doCopy));
    //=> {20, 30}

・配列の連結

・System.arraycopyメソッド

arraycopy
    int[] copiedOne = {10, 20, 30, 40, 50, 60};
    int[] copiedTwo = {70, 80, 90, 100};
    int[] doCopy = new int[copiedOne.length + copiedTwo.length];

    //System.arraycopy(コピー元, コピー開始位置, コピー先, コピー終了位置)
    System.arraycopy(copiedOne, 0, doCopy, copiedOne.length)
    //System.arraycopy(コピー元, コピー開始位置, コピー先, コピー先のコピー開始位置, コピー終了位置)
    System.arraycopy(copiedTwo, 0, doCopy, copiedOne.length, copiedTwo.length);

    System.out.prinln(Arrays.toString(doCopy));
    // => {10, 20, 30, 40, 50, 60, 70, 80, 90, 100}

・並び替え

・sort

  sortでは数字を小さいものから大きいものに並び替える。
sort
    int[] list = {10, 1, 3, 12, 30};
    Arrays.sort(list);

    System.out.println(Arrays.toString(list));
    => {1, 3, 10, 12, 30}

・deepToStringとは

  deepToStringとは、多次元配列を文字列で返すメソッド。toStringを使うと数字を参照することができない。
deepToString
    int[][] list = {{20, 30}, {40, 50}};

   System.out.pritnln(Arrays.deepToString(list));
   //=> [[20, 30], [40, 50]]

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1