2017-03-08 4 views
-3

clearメソッドを使用せずに、リンクリスト内のすべての要素を削除したいとします。リンクリストのすべての要素を.clear()なしで削除する

私はそのリストを持っている場合は、このメソッドを呼び出した後にこれが現在

//-----inner class----- 
private static class Node <T> { 
    private T data; 
    //next just points 
    private Node<T> next; 

    //constructs a node 
    public Node(T data, Node<T> next){ 
    this.data = data; 
    this.next = next; 
    } 

    public T getData(){ return data;} 

    public Node<T> getNext(){ return next;} 

}

private LinkedList<T> theList = new LinkedList<T>(); 
private Node<T> head; 
private Node<T> tail = null; 
private int size=0; 

public ListNoOrder() { 
    this.head = null; 
    size = 0; 
} 

//an add method 
public void add(T newElt) { 
    //if the new element equals null 
    //catch the exception 
    try{ if (newElt==(null));} 
    catch (Exception illegalArgumentException){ 
    throw new IllegalArgumentException();} 

    //if it doesn't catch an exception it adds the element to the list 
    //and increment the size by one 


    //what does the head = new Node<T>(newElt, head) mean??? 
    head = new Node<T>(newElt, head); 
    size++; 
} 

私は私の現在のリストは、4つのオブジェクトがある場合 を実装するリセット方法私のコードです0個のオブジェクト

public void reset() { 
    head = null; 
} 

これはうまくいくはずですが、テストするたびに何も削除されていません。これは完全なコードのちょっとした部分です。

+2

あなたのリストに

public ListNoOrder() { this.head = null; size = 0; } 

をリセットされた機能を持っているこの 'java.util.LinkedList'または独自の実装ですか? – Jeremy

+1

あなたの質問テキストは、あなたのタイトルの正反対を言っていますか? – GhostCat

+0

@Jeremy私自身の実装 – lionbear28

答えて

0
public void reset() { 
    head = null; 
} 

(あなた)

それは動作するはずですが、毎回私はそれが何が削除されなかったと言うテストします。これは何の言及は、このリストされていない場合は、そう、リストの最初の要素への参照を削除し、完全なコードだけこまごまと

(私のコメント)

は、JVMのメモリとガベージColletorにのみ存在していますそれをメモリから削除しますが、サイズをゼロ(サイズ= 0;)に設定しないでください。テストや他のものがリストをチェックすると、例えば "サイズ= 6"の情報が表示されます。他の側からは、BrokenEnglishで書かれたすべてのコメント:)

関連する問題