无法排序。如何按名称对对象列表进行排序?

时间:2017-05-17 16:47:38

标签: java sorting javafx

我想对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());
}

Inside RequirementGroup Controller我有:

public class RequirementGroupController extends BaseController
{
  public Requirement getRequirementGroup()
  {
    return requirementGroup;
  }

}

其中包含Requirement类,我最后想按Requirement.getName()排序。

2 个答案:

答案 0 :(得分:2)

您需要使用String#compareTo按名称对ArrayList中的对象进行排序。

http_req.open('POST', url, true);

请注意,在使用lambda表达式时,我没有明确指定参数类型,因为这是从上下文中推断出来的。

答案 1 :(得分:1)

您无法从另一个中减去String。使用Java 8执行此操作的正确方法如下:

Collections.sort(childRequirementGroupControllers, Comparator.comparing(c -> c.getRequirementGroup.getName()));