web-dev-qa-db-ja.com

エントリ/値を含むリンクリストを初期化するにはどうすればよいですか?

したがって、リンクリストを作成し、addメソッドを使用してエントリごとにエントリを入力する方法を知っています。ただし、エントリごとにエントリを追加する必要はありません。リストの初期値を使用してリンクリストを宣言する方法はありますか?

たとえば、1.0と2.0をリストに含める場合、1行でできることはありますか?何かのようなもの:

List<Double> temp1 = new LinkedList<Double>(1,2);
26
J L

これは次の方法で実行できます。

List<Double> temp1 = new LinkedList<Double>(Arrays.asList(1.0, 2.0));
65
Eugene Retunsky

LinkedListには次のコンストラクターがあり、Collection型のパラメーターを受け入れます。

_public LinkedList(Collection<? extends E> c)
_

このコンストラクターは、「指定されたコレクションの要素を含むリストを、コレクションの反復子によって返される順序で作成します。」

したがって、このコンストラクターを使用してLinkedListを宣言し、宣言時に値で初期化できます。任意の_Collection<Double>_タイプのインスタンスを提供できます。

値のセットだけがあり、Collectionオブジェクトがない場合は、提供された値のセットを変換する静的asList()メソッドを持つ_Java.util.Arrays_クラスを使用できます。 Listに戻ります。以下の例を参照してください。

_ List<Double> list = new LinkedList<Double>(Arrays.asList(1.2,1.3,3.2));
_

_List<Double>_のインスタンスが必要な場合、小数点以下の値を指定する必要があります。それ以外の場合は、値を持つ_List<Integer>_のインスタンスを取得します。

12

次のようなメソッドも作成できます

static <T> LinkedList<T> createLinkedList(T...elements) {
    LinkedList<T> newList = new LinkedList<T>();
    for (T el : elements) {
        newList.add(el);
    }

    return newList;
}

そしてそれを以下で使用します:

        LinkedList<Integer> a = createLinkedList(1, 2, 3);

        for (Integer item : a) {
            System.out.println(item);
        }
5
Igor