如何在android中以升序或降序值排序数组列表?

Yug*_*esh 2 java arrays sorting android arraylist

我的数组列表值如下所示

[
{
    Distance=Distance: 16.6km,
    branch_desc=name 1,
},
{
    Distance=Distance: 5.4km,
    branch_desc=name 2,
},
{
    Distance=Distance: 13.4km,
    branch_desc=name 3,
}
]
Run Code Online (Sandbox Code Playgroud)

如何对数组列表进行升序和降序排序与距离进行比较.我不知道如何对数组列表进行排序.任何人都知道请帮我解决这个问题.

Arn*_*lle 10

Collections#sort(List<T> list).它可以帮助您对任何T实现Comparable的列表进行排序.

如果您的课程没有实现Comparable,您可以提供Comparator并致电static void <T> sort(List<T> list, Comparator<? super T> c).

小班的例子:

public class Item implements Comparable<Item>{

  private Integer number;
  private Double distance;

  //Getters & Setters
  ...

  @Override
  public int compareTo(Item o) {
    return this.distance > o.distance? -1 : 1;
  }
}
Run Code Online (Sandbox Code Playgroud)

当它实现Comparable时,您可以对这样的列表进行排序:

List<Item> myItemList = ... ;
Collections.sort(myItemList);
//Now, myItemList is sorted
Run Code Online (Sandbox Code Playgroud)

或者您可以提供比较器来按任何条件对项目进行排序:

List<Item> list = ...;
//Here, I provide a Comparator to sort Items by number.
Collections.sort(list, new Comparator<Item>() {
  @Override
  public int compare(Item o1, Item o2) {
    return o2.getNumber() - o1.getNumber();
  }
});
Run Code Online (Sandbox Code Playgroud)