Interfejs Comparator

package pl.am.object2.lesson54;

import java.util.ArrayList;
import java.util.Collections;

public class ComparatorTest {
    public static void main(String[] args) {
        ArrayList<Kot> koty = new ArrayList<>();
        koty.add(new Kot("mruczek", 2.5));
        koty.add(new Kot("filemon", 3));
        koty.add(new Kot("bonifacy", 2));
        koty.add(new Kot("w butach", 2.8));
        koty.add(new Kot("miał", 2.1));
        koty.add(new Kot("kotek", 2.7));

        Collections.sort(koty);

        System.out.println("Sortowanie alfabetyczne po nazwach");
        for (Kot kot : koty) {
            System.out.println(kot);
        }

        Collections.sort(koty, new MasaComparator());
        System.out.println("Sortowanie po masie");
        for (Kot kot : koty) {
            System.out.println(kot);
        }
    }
}
package pl.am.object2.lesson54;


public class Kot extends ZwierzeDomowe implements Comparable<Kot>{
    public Kot(String nazwa, double masa) {
        super(nazwa, masa);
    }

    @Override
    public void dajGlos() {
        System.out.println("miauuuuu");
    }


    @Override
    public String toString() {
        return "Kot{" +
                "nazwa='" + nazwa + '\'' +
                ", masa=" + masa +
                '}';
    }

    @Override
    public int compareTo(Kot kot) {
        return nazwa.compareTo(kot.nazwa);
    }

//    @Override
//    public int compareTo(Object o) {
//        // this < o  --> -
//        // this - o  --> 0
//        // this > o  --> +
//
//        Kot kot = (Kot)o;
//        return Double.compare(this.masa, kot.masa);
//    }
}
package pl.am.object2.lesson54;

import java.util.Comparator;

public class MasaComparator implements Comparator<Kot> {
    @Override
    public int compare(Kot kot1, Kot kot2) {
        return Double.compare(kot1.getMasa(), kot2.getMasa());
    }
}

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *