我想对 childRequirementGroupControllers 进行排序,它是 RequirementGroupController 的列表,但它不允许我这样做。从语法上来说,我做错了什么?
private List<RequirementGroupController> childRequirementGroupControllers = new ArrayList<RequirementGroupController>();
@Override
public void requirementAdded(Requirement requirement)
{
Collections.sort(childRequirementGroupControllers, (RequirementGroupController a1,
RequirementGroupController a2) -> a1.getRequirementGroup.getName() - a2.getRequirementGroup.getName());
}
我有内部 RequirementGroup Controller :
public class RequirementGroupController extends BaseController
{
public Requirement getRequirementGroup()
{
return requirementGroup;
}
}
其中包含一个 Requirement 类,我最终想通过 Requirement.getName() 进行排序。
最佳答案
您需要使用String#compareTo
按名称对 ArrayList 中的对象进行排序。
Collections.sort(childRequirementGroupControllers, (a1, a2) -> a1.getRequirementGroup.getName().compareTo(a2.getRequirementGroup.getName()));
请注意,在使用 lambda 表达式时,我没有显式指定参数类型,因为这是从上下文推断出来的。
关于java - 无法排序。如何按名称对对象列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44030651/