Android按属性排列数组列表

我想通过属性对ArrayList进行sorting。 这是我的代码…

 public class FishDB{ public static Object Fish; public ArrayList<Fish> list = new ArrayList<Fish>(); public class Fish{ String name; int length; String LatinName; //etc. public Vis (String name) { this.name = name; } } public FishDB() { Fish fish; fish = new Fish("Shark"); fish.length = 200; fish.LatinName = "Carcharodon Carcharias"; fish = new Fish("Rainbow Trout"); fish.length = 80; fish.LatinName = "Oncorhynchus Mykiss"; //etc. } } } 

现在我想要通过一个属性来sorting这个ArrayList ,例如另一个activity中的latinname 。 但我不知道该怎么做。 有人知道吗?

您需要实现Comparator ,例如:

 public class FishNameComparator implements Comparator<Fish> { public int compare(Fish left, Fish right) { return left.name.compareTo(right.name); } } 

然后像这样sorting:

 Collections.sort(fishes, new FishNameComparator()); 

你可以简单地做到这一点,如下所示:

 Collections.sort(list, new Comparator<Fish>() { public int compare(Fish o1, Fish o2) { return o1.name.compareTo(o2.name); } });