Interface

3 respostas
I

Alguem pode me mostrar um exemplo util da interface comparable?

Abraços,
Info.

3 Respostas

G

“info_god”:
Alguem pode me mostrar um exemplo util da interface comparable?

Abraços,
Info.

http://www.onjava.com/pub/a/onjava/2003/03/12/java_comp.html

:wink:

I

“JavaPlayer”:
“info_god”:
Alguem pode me mostrar um exemplo util da interface comparable?

Abraços,
Info.

http://www.onjava.com/pub/a/onjava/2003/03/12/java_comp.html

:wink:

nao consegui entender a aplicabilidade ainda, tem um exemplo mais facil?

G
"info_god":
"JavaPlayer":
"info_god":
Alguem pode me mostrar um exemplo util da interface comparable?

Abraços,
Info.

[url]http://www.onjava.com/pub/a/onjava/2003/03/12/java_comp.html[/url]

:wink:

nao consegui entender a aplicabilidade ainda, tem um exemplo mais facil?

a interface Comparable tem um método compareTo, que determina como comparar duas instâncias da classe:

public int compareTo(Object o)

no link que eu te passei, dois objetos Pessoa, precisam ser comparados
por idade ou por último/primeiro nome...

Em casos como esse é necessário a criação de um Comparator que define como comparar dois objetos...

Comparator do último nome:
import java.util.Comparator;

public class LastNameComparator implements Comparator {
  public int compare(Object person, Object anotherPerson) {
    String lastName1 = ((Person) person).getLastName().toUpperCase();
    String firstName1 = ((Person) person).getFirstName().toUpperCase();
    String lastName2 = ((Person) anotherPerson).getLastName().toUpperCase();
    String firstName2 = ((Person) anotherPerson).getFirstName().toUpperCase();

    if (!(lastName1.equals(lastName2)))
      return lastName1.compareTo(lastName2);
    else
      return firstName1.compareTo(firstName2);
  }
}
Comparator do primeiro nome:
import java.util.Comparator;

public class FirstNameComparator implements Comparator {
  public int compare(Object person, Object anotherPerson) {
    String lastName1 = ((Person) person).getLastName().toUpperCase();
    String firstName1 = ((Person) person).getFirstName().toUpperCase();
    String lastName2 = ((Person) anotherPerson).getLastName().toUpperCase();
    String firstName2 = ((Person) anotherPerson).getFirstName().toUpperCase();
    if (!(firstName1.equals(firstName2)))
      return firstName1.compareTo(firstName2);
    else
      return lastName1.compareTo(lastName2);
  }
}

:wink:

Criado 5 de junho de 2005
Ultima resposta 5 de jun. de 2005
Respostas 3
Participantes 2