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); } });