【发布时间】:2013-02-17 07:19:17
【问题描述】:
所以我创建了一个员工对象和一个驱动程序。驱动程序包含一个员工的 ArrayList,这个特定的方法返回名字按字母顺序排在第一位的员工。
让我们在 ArrayList 'staff' 中添加两个员工,并称他们为“a”和“z”。
由于某种原因,当我期望它返回员工“a”时,它总是返回员工“z”。我是否正确使用了 compareTo 方法,还是完全不同?
public Employee first()
{
int guy = 0;
for ( int x = 1 ; x < staff.size() ; x ++ )
{
if ( staff.get( x -1 ) instanceof Employee && staff.get( x - 1 ).getName().compareTo( staff.get( x ).getName() ) < 0 )
guy = x - 1;
}
return ( (Employee) staff.get( guy ) );
}
【问题讨论】:
-
文档说明了它是如何工作的?
-
你还没有向我们展示 compareTo 方法的实现
-
为什么不在一些自定义比较器上对列表进行排序?为什么还要检查
instanceof?