2017-11-05 2 views
0

나는 모두 아이디어가 없습니다. 그래서 각 노드 자체가 문자열 인 연결된 목록을 가지고 있으며, 그것을 역전시킨 새로운 Ob 객체를 반환하고자합니다. 예를 들어 원본에 두 노드, "abcd"및 "def"가있는 경우 결과는 "fed"및 "dcba"가됩니다 ("def"및 "abcd"와 반대). myFirst는 내가 먼저 정의/초기화하고 머리를 참조하는 변수입니다. 나는 그것이 [feddcba] 대신에 [Ob $ Node @ 4465dade]를 얻는다는 것을 말하고 있기 때문에 어떤 유형 문제가있을 수 있다고 생각합니다. 추측 된 기억과 관련이 있습니까? Ob은 Obj를 구현했기 때문에 Obj와 반대로 Ob 객체를 반환하는 것이 문제가 아니라는 것을 알고 있습니다. (실제로 새로 생성 된 Ob 객체를 반환하는 지침에 있습니다.)역순으로 연결된 목록과 각 노드의 각 문자열

public Obj reverse() { 
    Node before = null; 
    Node tmp = myFirst; 
    while (tmp != null) { 
     StringBuilder copy = new StringBuilder(tmp.info); 
     copy.reverse(); 
     String str = new String(copy.toString()); 
     tmp.info = str; 
     Node next = tmp.next; 
     tmp.next = before; 
     before = tmp; 
     tmp = next; 
    } 
    Ob ret = new Ob(before.toString()); //note Ob implements Obj 
    return ret; 
} 

어떤 도움을 주실 수 있습니까?

+0

코드에 [mcve]가 없으므로 답변에 추측이 필요합니다. 'Node'가'toString()'을 오버라이드하지 않는다고 가정합니다. 그것해야합니다. – c0der

답변

0

자바에서 객체 인쇄는 객체의 해시 코드 Ob $ Node @ 4465dade를 인쇄합니다. 나는 당신이 값을 얻기 위해 객체의 toString 메소드를 호출하기를 원할 것이라고 생각한다. feddcba.

관련 문제