Sobes.tech
Junior

Para que serve o método sorted() nos streams?

sobes.tech IA

Resposta da IA

O método sorted() em Java Streams é usado para criar um stream cujos elementos estão ordenados. Existem duas sobrecargas deste método:

  1. sorted(): Ordena os elementos em ordem natural (para tipos que implementam Comparable).

    Stream<String> stringStream = Stream.of("banana", "apple", "cherry");
    Stream<String> sortedStream = stringStream.sorted(); // Ordena alfabeticamente
    
  2. sorted(Comparator<? super T> comparator): Ordena os elementos de acordo com o Comparator fornecido.

    Stream<Integer> intStream = Stream.of(5, 2, 8, 1);
    Stream<Integer> sortedStreamDesc = intStream.sorted(Comparator.reverseOrder()); // Ordena em ordem decrescente
    
    List<Person> people = Arrays.asList(
        new Person("Alice", 30),
        new Person("Bob", 25),
        new Person("Charlie", 35)
    );
    Stream<Person> sortedPeopleByAge = people.stream().sorted(Comparator.comparingInt(Person::getAge)); // Ordena por idade
    

O método sorted() é uma operação intermediária em um stream. Isso significa que ele retorna um novo stream e não modifica o original. A ordenação é realizada de forma preguiçosa durante a execução de uma operação terminal.