import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
class A implements Comparable<A>
{
public int a;
public String b;
public A(int _a, String _b) {
a = _a;
b = _b;
}
@Override
public int compareTo(A _kiyaslanan)
{
return this.a - _kiyaslanan.a;
}
@Override
public String toString()
{
return a + ":" + b;
}
}
public class test
{
public static void main(String[] args)
{
A a = new A(10, "on");
A b = new A(9, "dokuz");
A c = new A(8, "sekiz");
A d = new A(7, "yedi");
A e = new A(6, "altı");
final List list = new ArrayList<A>();
list.add(a);
list.add(c);
list.add(b);
list.add(e);
list.add(d);
System.out.println("// Kendi compareTo metoduyla sıralama");
Collections.sort(list);
yaz(list);
System.out.println("// İnterface olarak eklenen compareTo metoduyla sıralama");
Collections.sort(list, new Comparator<A>() {
@Override
public int compare(A a2, A a1)
{
// b, String tipinde ve String sınıfının compareTo metoduna göre
// sıralama
return a2.b.compareTo(a1.b);
}
});
yaz(list);
}
public static void yaz(List list)
{
for (int i = 0; i < list.size(); i++)
{
System.out.println(list.get(i));
}
}
}