0

さて、私はリンクリストの配列とほとんどのスタックオーバーフロースレッドの作成に関するすべてのグーグルの結果を読んでいますが、それらが何をしているのか本当に理解していません。LinkedInlistを拡張する別のクラスを作成してから、そのクラスの配列を作成する必要がありますか?

私はこのコードをアレンジするために何百万もの異なる方法を試しましたが、これは私が現在持っているものです。

public static int[][] genPerms(int numElements, int totPerms) {
    int permArray[][] = new int[totPerms][numElements];
    LinkedList<Integer>[] elementsLeftList = new LinkedList<Integer>[numElements];

エラーはジェネリック配列の作成です。誰かが私に実際にここで何が起こっているのか説明できますか?

以下の解決策に加えて、ヘッドポインタの配列を作成できると言われました。

前もって感謝します。

4

2 に答える 2

2

ジェネリック配列の作成は許可されていません。次の操作を行ってください

    @SuppressWarnings("unchecked")
    LinkedList<Integer>[] elementsLeftList = new LinkedList[numElements];

それは正常に動作します

于 2013-02-04T03:16:55.937 に答える
1

現在、複雑なプロセスを経ずに Java でジェネリックの配列を作成することはできません。代わりに次のことができますか?

List<LinkedList<Integer>> elementsLeftList = new ArrayList<LinkedList<Integer>>();

本当に配列として必要な場合は、 elementsLeftList.toArray() から取得して結果をキャストできます。

説明については、次のリンクを参照してください。 http://www.angelikalanger.com/GenericsFAQ/FAQSections/ParameterizedTypes.html#FAQ104

于 2013-02-04T03:09:54.360 に答える