Подтвердить что ты не робот

Андроид сортировки Android по свойствам

Я хочу сортировать ArrayList по свойству. Это мой код...

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.
        }
    }
}

Теперь я хочу, чтобы отсортировать этот ArrayList с помощью свойства, например, latinname в другом действии. Но я не знаю, как это сделать. Кто-нибудь знает, как?

4b9b3361

Ответ 1

Вам нужно реализовать Comparator, например:

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

а затем выполните сортировку следующим образом:

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

Ответ 2

Вы можете просто сделать это следующим образом:

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