自定义排序 -

时间:2017-08-21 07:28:16

标签: java

我们有一组无序的值,如下所示:

Name   cost 
---------    - - - - - 
Bbb      100-500
Ccc       500+more
Aaa       1-100

我们希望以下面的格式显示上述值(按成本排序)。

Name   cost 
---------    - - - - - 
Aaa       1-100
Bbb      100-500
Ccc       500+more

是否有任何可能的方法使用Java或任何最佳排序方式进行自定义排序。

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

Java有一个名为Comparator的东西,用于对事物进行排序。

在比较器中,您可以定义用于排序的属性。例如,要按成本排序,您可以使用以下示例。根据属性的类型,您可以使用compareTo或以其他方式编写自己的排序逻辑(请参阅比较器文档)。

class MyComparator implements java.util.Comparator<MyObject> {
  @Override
  public int compare(MyObject o1, MyObject o2) {
    return o1.cost.compareTo(o2.cost);
  }
}
List<MyObject> items = new ArrayList<>();
items.sort(new MyComparator());

// Or use a lambda instead
items.sort((o1, o2) -> o1.cost.compareTo(o2.cost));