gpt4 book ai didi

java - 如何正确使用String中实现的compareTo方法?

转载 作者:行者123 更新时间:2023-12-02 07:16:15 26 4
gpt4 key购买 nike

所以我创建了一个员工对象和一个司机。该驱动程序包含一个雇员数组列表,此特定方法返回姓名按字母顺序排在第一位的雇员。

让我们向 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 ) );
}

最佳答案

无需重新发明轮子。使用自定义比较器并使用 Collections排序方法。

public class NameComparator implements Comparator<Employee> {
@Override
public int compare(Employee o1, Employee o2) {
return o1.getName().compareTo(o2.getName());
}
}

Collections.sort(yourArrayList, new NameComparator());

或者,您可以确保您的 Employee类实现Comparable<Employee>你可以不用上面的自定义比较器。这假设您只想根据名称进行比较。

关于java - 如何正确使用String中实现的compareTo方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14918855/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com