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

标签 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());
}

我有内部 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/

相关文章:

java - 如何在 JavaFX (fxml) 中制作一个环

Java - 从递归函数返回

python - Pandas.sort_index 不按第二个给定参数排序

c++ - 对输入的数字进行排序 - FOR 和 WHILE 之间的区别

java - 如何在 JavaFX 中正确连接 SQLite 与文本字段和标签?

java - TestFX clickOn() 组合框/选择框上的特定文本

java - java中从子框架返回数据到父框架

java - 使用 Hibernate Validator 验证 POJO,无需 JavaBean 约定

java - 同一条语句的运行时间在 Java 中差异如此之大

java - Java冒泡排序遇到问题