Interface

Alguem pode me mostrar um exemplo util da interface comparable?

Abraços,
Info.

[quote=“info_god”]Alguem pode me mostrar um exemplo util da interface comparable?

Abraços,
Info.[/quote]

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

:wink:

[quote=“JavaPlayer”][quote=“info_god”]Alguem pode me mostrar um exemplo util da interface comparable?

Abraços,
Info.[/quote]

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

:wink:[/quote]

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

[quote=“info_god”][quote=“JavaPlayer”][quote=“info_god”]Alguem pode me mostrar um exemplo util da interface comparable?

Abraços,
Info.[/quote]

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

:wink:[/quote]

nao consegui entender a aplicabilidade ainda, tem um exemplo mais facil?[/quote]

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:

[code]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);

}
}[/code]

Comparator do primeiro nome:

[code]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);
}
}[/code]

:wink: