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