0

我必须实现一个单链表,但它应该将对象放在适当的位置。当我将它与特定类结合使用时一切都很好,但是当我尝试使其通用并且方法 insert 的参数是 Object 时出现了一些问题。当我想在正确的位置输入 Object 时,我应该使用 CompareTo 方法,但 Object 类中没有方法!问题是如何在不知道它们的真实类型的情况下比较两个对象元素。也许我应该使用泛型类类型?但是,CompareTo 呢?或者也许与 Element 类结合并将 CompareTo 放在那里?我想这是可行的。:)

public void insert(Object o)
{
   Element el = new Element(o);
   //  initializing and setting iterators

   while(!it.isDone() && ((it.current().getValue())).CompareTo(o)<0) 
                         // it.current() returns Element of List
   {    
      //move interators
   }
//...
}
4

1 回答 1

5

你有两个选择:

  • 使每个对象的类实现java.lang.Comparable并在那里为每个类编写比较逻辑,然后只接受Comparable而不是Object调用compareTo()
  • 创建comparator列表的属性并将其设置为构造。具体的比较器(的实现java.util.Comparator)应该知道如何比较放在列表的这个特定实例中的对象。
于 2010-03-21T11:55:54.560 回答