Java : Comparable con ejemplos

Comparable (Java SE 21 & JDK 21) en Java con ejemplos.
Encontrará ejemplos de código en la mayoría de los métodos de Comparable<T>.

Nota :


Summary

Esta interfaz impone un ordenamiento total a los objetos de cada clase que la implementa. Este orden se conoce como ordenamiento natural de la clase y el método compareTo de la clase se conoce como su método de comparación natural. (Traducción automática)

Class diagram

See also : Comparator

// The String class implements the Comparable interface.
final Comparable<String> comparable = "bbb";

System.out.println(comparable.compareTo("aaa")); // 1
System.out.println(comparable.compareTo("bbb")); // 0
System.out.println(comparable.compareTo("ccc")); // -1
final var list = List.of("ddd", "bbb", "ccc", "aaa");
System.out.println(list); // [ddd, bbb, ccc, aaa]

final var sorted = list.stream().sorted().toList();
System.out.println(sorted); // [aaa, bbb, ccc, ddd]

Methods

int compareTo (T o)

Compara este objeto con el objeto especificado para realizar el pedido. (Traducción automática)

// The String class implements the Comparable interface.
final var list = List.of("ddd", "bbb", "ccc", "aaa");
System.out.println(list); // [ddd, bbb, ccc, aaa]

final var sorted = list.stream().sorted().toList();
System.out.println(sorted); // [aaa, bbb, ccc, ddd]
record Sample(String text, int num) implements Comparable<Sample> {
    @Override
    public String toString() {
        return "(%s, %d)".formatted(text, num);
    }

    @Override
    public int compareTo(Sample o) {
        if (!text.equals(o.text())) {
            return text.compareTo(o.text());
        } else {
            return num - o.num();
        }
    }
}

final var list = List.of(
        new Sample("bbb", 2), new Sample("bbb", 3), new Sample("bbb", 1),
        new Sample("aaa", 3), new Sample("aaa", 1), new Sample("aaa", 2)
);

// [(bbb, 2), (bbb, 3), (bbb, 1), (aaa, 3), (aaa, 1), (aaa, 2)]
System.out.println(list);

final var sorted = list.stream().sorted().toList();

// [(aaa, 1), (aaa, 2), (aaa, 3), (bbb, 1), (bbb, 2), (bbb, 3)]
System.out.println(sorted);

Related posts

To top of page