2011-11-21 3 views
0

연결된 목록 클래스를 만들고 있는데이 메서드를 구현하려고합니다.이 (T 항목) 방법을 포함하는 것은 무엇이 틀렸습니까? 자바. 연결된 목록

저는 headtail 센티넬 노드가 있으므로 head.next에 루프가 시작됩니다. length은 목록의 크기입니다. 모든 시합 나는 너희들을 제공 할 수 있습니다 : O

public boolean contains(T entry) { 

    boolean found = false; 
    Node current = head.next; 

    for (int i = 0; i < length; i++) { 

     if (current.equals(entry)) { 

      found = true; 
     } 
     current = current.next; 
    } 
    return found; 
} 
+0

질문은 무엇입니까? –

+0

무엇이 잘못 되었나요? 작동하지 않습니까? 그것은 깨는가? 게다가, 이것은 더 이상의 문맥 없이는 컴파일되지 않습니다. "길이"란 무엇입니까? – EboMike

+0

미안하다. 내 테스터에서, 예를 들어 내 목록에 "hello"를 추가하고 myList.contains ("hello")를 호출하면 문자열 만 사용하고 있습니다. 거짓을 반환합니다. 나는 완전히 add 메서드를 테스트했다, 확실히 작동한다. 길이는 내 목록에있는 항목의 수입니다. – Tim

답변

6

문제 당신이 당신의 equals 메소드가 올바르게 항상 false있는 다른 클래스를 반환합니다 올바른 계약을 fufills 경우 TNode를 비교하는 것입니다.

즉 다시 검토이 라인 :

if (current.equals(entry)) { 
+0

감사합니다. 그건 까다 롭습니다! – Tim