Mam pytanie dotyczące metody Collections.sort(). Chce z jej pomocą posortować obiekty znajduące się w ArrayList . W tej kolekcji znajdują się obiekty klasy ala(kod poniżej ) która składa się z dwóch składowych x i y typu int . Chce by kryterium sortowania była składowa x każdego obiektu . I teraz rozumiem ze musze zaimplementować interfejs Comparable dla mojej klasy i przysłonić jedyną metodę comapreTO. Udało mi się osiągnąć zamierzony efekt w sposób który znajduję się poniżej ale mam parę pytań(wydaje mi sie poza tym że moje rozwiązanie jest słabe ale działa :) ) .
public class ala implements Comparable{
int x,y;
public ala(int a,int b){
x=a;
y=b;
}
@Override
public int compareTo(Object o) {
ala w=(ala)o;
int a=-1;
if(this.x>w.x){
a=1;
}
if(this.x==w.x){
a=0;
}
return a;
}
}
- Czy dało by się w jakiś sposób uniknąć rzutowania??? "ala w=(ala)o;" ???
2)Porównywane składowe są typu integer a on implementuje przecież Comperable . Da się przekazać jakoś wartości do metody compareTO klasy integer ?