2015-10-16 64 views
1
public boolean contains1(Object o) { 
    System.out.println("ListIterator Approach: "); 
    ListIterator <E> listIterator = list.listIterator(); 
    //System.out.println("true true true"+o); 

    while (listIterator.hasNext()) { 
     // System.out.println(listIterator.next()); 

     System.out.println("\n" + "0: " + o + " next" + listIterator.next() + "\n"); 

     if ((listIterator.next()).equals(o)) return true; 

    } 
    return false; 
} 

我想重载包含方法使用迭代器比较迭代器下一个值和给定的对象。但结果总是假的。 请帮忙解决这个问题。 谢谢!如何比较通用值和对象

回答

2

您正在比较o与第二个下一个,因为您称为listIterator.next()两次。

4

您每拨打iterator两次,即打电话next()方法。

System.out.println("\n"+"0: "+o+" next"+listIterator.next()+"\n"); // once 

     if((listIterator.next()).equals(o)) // twice 
      return true; 

因此,条件永远不会令人满意。

如果你想在里面多次使用该对象,将它分配给一个引用并使用它。不要多次拨打next()