1

リンクされたリストの配列を作成することは可能ですか? または、リンクされたリストの配列リストですか? 私はどこでも検索してきましたが、矛盾した答えを得ているようです。逆参照できるものの配列を作成できないため、実行できないという「いいえ」の回答を見てきました。私はそれが可能であり、そこで終わるという「はい」の答えを見てきました。

前もって感謝します。

4

3 に答える 3

5

私があなたを正しく理解しているなら、あなたは基本的に2D配列を作りたいと思っていますが、後半はリンクされたリストです。

import java.util.ArrayList;
import java.util.LinkedList;

public class Test
{
    public static void main(String[] args)
    {
        LinkedList one = new LinkedList();
        LinkedList two = new LinkedList();
        LinkedList three = new LinkedList();

        ArrayList<LinkedList> array = new ArrayList<LinkedList>();

        array.add(one);
        array.add(two);
        array.add(three);

        // .. do stuff
    }
}

Java は、配列またはリスト内のオブジェクトが何であるかを気にしないため、別の配列またはリストを配置することに何の問題もありません。

于 2013-03-04T01:46:51.810 に答える
4

最悪の方法: 生のリストの配列を作成する:

List[] lstString = new List[10];
for(int i = 0; i < lstString.length; i++) {
    lstString[i] = new LinkedList<String>();
    lstString[i].add(Integer.toString(i));
}
for(int i = 0; i < lstString.length; i++) {
    for(Iterator it = lstString[i].iterator(); it.hasNext(); ) {
        System.out.println(it.next());
    }
}

少し良い方法: List を保持するラッパー クラスを使用し、その配列を作成します。

public class Holder {
    List list = new LinkedList();
}

//...
Holder[] holders = new Holder[10];
for(int i = 0; i < holders; i++) {
    holders[i] = new Holder();
}

より良いアプローチ: を使用List<List<Data>>:

List<List<Data>> lstOfListOfData = new ArrayList<List<Data>>();
for(int i = 0; i < 10; i++) {
    lstOfListOfData.add(new LinkedList<Data>());
}
于 2013-03-04T01:48:46.090 に答える
0

逆参照できるものの配列を作成できないため、実行できないという「いいえ」の回答を見てきました

配列のメンバー値がnullであるかどうかは関係ありません。そのメンバーに「アクセス」してインスタンス化できる場合は、逆参照されません。はい、できます。

于 2013-03-04T01:50:10.010 に答える