0
public void printList( ){
    Node<E> p ;
    System.out.printf( ” [ ” ) ;
    for ( p=head.next ; p != null ; p=p.next )
        System.out.print( p.element ) ;
    System.out.printf( ” ] ” ) ;
}

public void addLast (E e){
    Node<E> p = head;   // <--- data type Node<E>, var name = p, but what is head type?
    while ( p.next != null )
        p = p.next ;
    p.next = new Node<E>(e , null ) ;
}

ジェネリックの例:

public class Box {
private Object object;

public void set(Object object) { this.object = object; }
public Object get() { return object; }

}

ジェネリックの使用:

// T stands for "Type"
public class Box<T> {
    private T t; 

    public void set(T t) { 
        this.t = t;
    }
    public T get() { 
        return t;
    }
}

リンクされたリストが直感的にどのように機能するかについての一般的な考えはありますが、コードではわかりません。

要素と次のノードへの参照があることは知っています。上記のコードで、「。」はどのように機能しますか。null に到達するまでリストをトラバースする演算子は機能しますか?

「次」は参照変数だと思います。p=p.next を実行すると、コード/コンピューターでどのように機能しますか?

無関係なメモでは、ノード ? ノード(E)の代わりに?違い?上記の例では、'object' が 't' に置き換えられたようで、利点がわかりません。;S

事前に感謝します。

4

3 に答える 3

0

Nodeクラスが以下の種類であると仮定します。

class Node<T>{
    Node<T> next;
    T element;
}        

これで、「ノード」クラスのすべての参照が、その 2 つのプロパティにアクセスできるようになりました。プロパティへのアクセスには.演算子が使用されます。

を設定p = p.nextすると、内部では単なるポインターの移動になります。

于 2012-06-16T04:16:33.050 に答える
0

LinkedList をリンクされたノードのリストと考えると役立つ場合があります。各ノードが次のノードへの参照を保持する場所 (存在する場合)。それが役立つかどうかはわかりませんが、学校でこの課題をしなければならなかったとき、APIを調べて使用しようとすると非常に役立つことがわかりました。

Generics を使用すると、Node は Object 型の Node になり、Node は特定の型の Node になります。たとえば、LinkedList は文字列を保持します。これは、ジェネリックがどのように機能するかをよりよく理解するのに役立つかもしれません。

ジェネリックを使用する簡単な例を次に示します。

Class Box<E>{
    private E variable;

    public E get(){
        return variable;
    }

    public void set(E variable){
        this.variable=variable;
    }

    public static void main(String[] args){
        Box<String> example=new Box<String>();
        example.set("test");
        System.out.println(example.get());

        Box<Integer> example2=new Box<Integer>();
        example2.set(1);
        //example2.set("test");will not work because it is types as an Integer
        System.out.println(example2.get()+1);
    }
}
于 2012-06-16T04:24:44.510 に答える
0

head.next上記のコードでは、が null に等しくない限り、 p はリスト内の次の「リンク」に設定されます。これは続きます。p.nextp に設定される次のリンクへの参照を返します。この参照チェーンは続きます。

Node<E>クラスのユーザーがノードに含まれる型を渡すことを可能にするジェネリック型です。これにより、単純にキャストを使用するよりも型の安全性が高くなります。

于 2012-06-16T04:14:19.337 に答える