Tenho a seguinte classe em um pacote:
public class Cheque implements Comparable<Cheque>{
o que eu nao consigo intender é esse implementes Comparable ;
é outra classe que tenho dentro do mesmo pacote.
pode me ajudar por favor.
abraços…
Tenho a seguinte classe em um pacote:
public class Cheque implements Comparable<Cheque>{
o que eu nao consigo intender é esse implementes Comparable ;
é outra classe que tenho dentro do mesmo pacote.
pode me ajudar por favor.
abraços…
Isso é esquisito (implementar uma interface cujo parâmetro é a própria classe), mas não há problemas. Considere que é assim que tem de ser feito.
Se quiser saber os detalhes mais complicados, é interessante ler o tutorial:
O Comparable é uma interface que serve para você dizer que um determinado objeto tem uma ordem natural e, portanto, pode ser ordenado. Note que ele associa essa característica a sua classe.
Beleza, agora eu extendi esse codigo, implementei um compareTo, e agora quero comparar a data de dois objetos,
a data desses objetos e dada no momento da criação deles, la no construtor da classe.
public static void ordenaPorDataAscendente(){
Collections.sort(lc , new comparacd());
}
private class comparacd implements Comparator<Contato>{
@Override
public int compare(Contato o1, Contato o2) {
return 0;
}
}
como que eu implemento, será que eu tenho que pegar os milisegundos para eles comparar???
estou quebrando a cabeça nisso, por favor ajude esse probre iniciante ...ehehehe :lol:
abraços...
Você poderia armazenar a data em que foram criados como um atributo dentro da classe Contato.
Você poderia armazenar a data em que foram criados como um atributo dentro da classe Contato.
O problema é....
quando eu chamo o metodopublic static void ordenaPorDataAscendente(){
Collections.sort(lc , new comparacd());
ele vai para
private class comparacd implements Comparator <Contato>{
public int compare(Contato o1, Contato o2) {
GregorianCalendar c1 = o1.getData();
GregorianCalendar c2 = o2.getData();
if (c1 < c2 ){
return -1;
}if (c2 > c1){
return 0;
}
}
}
mas no if c1 < c2 ele diz que
The operator < is undefined for the argument type(s) java.util.GregorianCalendar, java.util.GregorianCalendar