配列をArrayListに変換する - ArrayListクラス - 萌えJava超入門
ArrayListクラス

配列をArrayListに変換する

ArrayListを配列に変換します。


T[] array;
ArrayList<T> arrayList
    = new ArrayList<T>(Arrays.asList(array));
要素型がTである配列「array」 を ArrayListに変換する例 

萌えJava超入門
配列をArrayListに変換するには、
2段階の手順で行う。
目次

1.配列をArrayListに変換する手順


配列をArrayListに変換するには、
  1. Arraysクラスの asListメソッドを使用して、Listに変換します。
  2. 引数にListを与えて ArrayListのインスタンスを生成します。
萌えJava超入門
先ずは Step1 だ。
Arraysクラスを使う




萌えJava超入門 萌えJava超入門
OK。

Step1: 配列をListにします。
Arrays.asList 書式
  T[] array;
  List<T> list = Arrays.asList(array);
asListメソッドは、staticメソッドです。
T は、引数に与える配列のデータ型を指定します。
import java.util.Arrays; が必要です。
import java.util.List; が必要です。

萌えJava超入門
Step1 で Listを受け取ったら、
これを ArrayListに変換する。




萌えJava超入門 萌えJava超入門
ふむふむ。

Step2: Listを ArrayListにします。
Listを引数にした ArrayListのインスタンス化 書式
ArrayList<T> arrayList = new ArrayList<T>(list);
引数に、Listのインスタンスを与えています。
T は、引数に与えるListのデータ型を指定します。

萌えJava超入門
Step1 と Step2 を一文で行う例も
紹介しておこう。
Step1 + Step2
配列を一度に ArrayListにするテンプレ
 T[] array;
 ArrayList<T> arrayList
     = new ArrayList<T>(Arrays.asList(array));

萌えJava超入門
いろいろ出てきたので
すこし補足しよう。



萌えJava超入門 萌えJava超入門
ヤバいわ...
大丈夫かしら。


2. Arraysクラス


java.util.Arrays
   class Arrays

配列を操作するためのクラスです。
Arraysクラスは、すべてのメソッドが static で、引数に操作したい配列を与えて使用します。
配列にはメソッドがないので、Arraysクラスが便利です。

今回は、asListメソッドを使用します。
asListメソッドの引数は配列で、戻り値は List型です。
Arraysクラスの詳細はまたの機会に。



3. Listインターフェース


java.util.List
   interface List<E>

萌えJava超入門
めんどくさかったら
適当にスルーしていいぞ。
Listはインターフェースです。
ArrayListクラスは、Listを実装したクラスです。
Arrays.asListメソッドの戻り値が List型なので、一度 List型の変数で受ける必要があります。

ArrayListクラスのコンストラクタは、引数に List(厳密にはCollection)インターフェースを実装したクラスのインスタンスを与えると、 要素を引き継いだ ArrayListのインスタンスを生成します。

ArrayListクラスの他にも、Listインターフェースを実装したクラスがたくさんあります。



4. サンプルコード

萌えJava超入門
実際に使うと
こんな感じだ。
//Sample10_01.java

import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;

class Sample10_01{
    public static void main(String[] args){

        String[] array = {
          "赤井 持国",
          "百瀬 日向",
          "青木 柏手",
          "緑川 出雲"
        };

        //配列 array の表示
        System.out.println("\n** 配列 **");
        for(int i=0; i<array.length; i++){
            System.out.println(array[i]);
        }

        //List に変換
        List<String> list = Arrays.asList(array);

        //ArrayListクラス に変換
        ArrayList<String> arrayList = new ArrayList<String>(list);

        //ArrayListクラス arrayList の表示
        System.out.println("\n** arrayList1 **");
        for(int i=0; i<arrayList.size(); i++){
            System.out.println(list.get(i));
        }

        //ArrayListとしての動作確認
        arrayList.add(2, "キレンジャー");

        //ArrayListクラス arrayList の表示2
        System.out.println("\n** arrayList2 **");
        for(int i=0; i<arrayList.size(); i++){
            System.out.println(arrayList.get(i));
        }

    }
}

コマンドライン
>cd ws
ws>javac -encoding UTF-8 Sample10_01.java
ws>java Sample10_01
** 配列 **
赤井 持国
百瀬 日向
青木 柏手
緑川 出雲

** arrayList1 **
赤井 持国
百瀬 日向
青木 柏手
緑川 出雲

** arrayList2 **
赤井 持国
百瀬 日向
キレンジャー
青木 柏手
緑川 出雲

シドニアの衛人操縦士にキレンジャーが在籍していた事実は確認されていません。

addメソッドで要素を追加出来ていますね。
配列から ArrayList に変換できたことが分かります。

萌えJava超入門
ちょっ!
なに混ぜてるんスか
油断も隙もない!!
萌えJava超入門 萌えJava超入門
やはりキレンジャーは
不滅なのだ!!



お疲れ様でした。




© 2019 awasekagami