U10-03-Clases en Java – Comparable I

La interfaz Comparable es una interfaz común en Java utilizada para comparar objetos del mismo tipo. Sirve para establecer un orden natural entre objetos de una clase concreta.

Define un método único llamado compareTo para comparar dos objetos del mismo tipo. Permite ordenar colecciones de objetos que implementan esta interfaz utilizando métodos como Collections.sort y Arrays.sort. Facilita el uso de objetos como claves en mapas ordenados y elementos en conjuntos ordenados.

Método compareTo: Es un método abstracto (sin implementación en la propia interfaz). Recibe un objeto del mismo tipo como argumento. Devuelve un entero con el siguiente significado:

0: Los objetos son iguales.

Valor negativo: El objeto actual es menor que el objeto pasado como argumento.

Valor positivo: El objeto actual es mayor que el objeto pasado como argumento.

package U2;

import java.util.Arrays;

public class E00_00 {

	public static void main(String[] args) {
		
		int[] numeros = new int[3];
		numeros[0]=3; numeros[1]=1; numeros[2]=2;
		System.out.println(Arrays.toString(numeros));
		Arrays.sort(numeros);
		System.out.println(Arrays.toString(numeros));
		
		Persona p0=new Persona (0,"Carlos");
		Persona p1=new Persona (1,"Lara");
		Persona p2=new Persona (2,"Maria");
		
		Persona[] personas = new Persona[3];
		personas[0]=p1;	personas[1]=p2;	personas[2]=p0;
		System.out.println(Arrays.toString(personas));
		Arrays.sort(personas);
		System.out.println(Arrays.toString(personas));
		
		
		
	}
}

class Persona implements Comparable{
	int id;
	String nombre;
	Persona (int i,String n){
		this.id=i;
		this.nombre=n;
	}
	public String toString() {
		return "ID: " + this.id + " Nombre: " + this.nombre;
	}
	@Override
	public int compareTo(Object o) {
		Persona p=(Persona) o;
		if (this.id>p.id)
			return 1;
		else
			if (this.id<p.id)
				return -1;
			else
				return 0;
	}
}

Related Posts