0

MyLinkedListクラスのaddListというメソッドを使用して、リンクリストを別のリンクリストに追加しようとしています。私がこだわっているのは、メソッドを実装して、選択したインデックスの場所の別のリンクリストにリンクリストを追加できるようにする方法です。

MyLinkedListには次のようなものがあります。

public void addList(int index, E e){
    if(index == 0){
        addFirst(e);
    } else if (index >= size){
        addLast(e);
    }
    else{
        Node<E> current = head;
        for(int i = 1; i < index; i++){
            current = current.next;
        }
        Node<E> temp = current.next;
        current.next = new Node<E>(e);
        (current.next).next = temp;
        size++;
    }
}

私はこの方法がうまくいかないことを知っています、私はそれを試しました。私のプログラム自体には、次のものがあります。

public class linkedlistwork {

    public static void main(String[] args) {
        MyLinkedList<String> alpha = new MyLinkedList<String>();
        alpha.add("hello");
        alpha.add("world");
        alpha.add("this");

        System.out.println(alpha);

        MyLinkedList<String> beta = new MyLinkedList<String>();
        beta.add("is");
        beta.add("java");
        beta.add("rocks");

        System.out.println(beta);

        alpha.addList(1, beta);
        System.out.println(alpha);
    }
}

正しい出力は次のようになります。

OUTPUT:
[hello, is, java, rocks, world, this]

私のプログラムは実行されませんでした、この行でエラーが発生しました

alpha.addList(1, beta);

「ベータ」の部分では、次のように述べています。

MyLinkedListクラスのメソッドaddListは、特定のタイプには適用できません。必須:int、Stringが見つかりました:int、MyLinkedList理由:実際の引数MyLinkedListは、メソッド呼び出し変換によって文字列に変換できません。ここで、Eは型変数です。EはクラスMyLinkedListで宣言されたオブジェクトを拡張します。

正しく使用できるようにメソッドを修正するにはどうすればよいですか?前もって感謝します!!

4

2 に答える 2

2

あなたの addList メソッドの署名が問題であるように私には思えます。次のようになります。

public void addList(int index, List<E> list)
于 2012-11-15T23:22:50.667 に答える
1

を追加するメソッドが必要ですMyLinkedList<String>。このようなことができます

public void addList(int index, MyLinkedList<E> beta){
//Somehow loop through the MyLinkedList, and do this.
   add(index+i,beta(i));
}
于 2012-11-15T23:23:01.027 に答える