comparator сортирует не так, как задумано

Делаю домашнее задание, в потоке фильтрую элементы коллекции List. Использую Comparator для сортировки элементов по алфавитному порядку. Смотрю на код и элементы должны отсортированы в таком порядке:

  1. Альбина
  2. Бегемот.
  3. Ева.

Код:

public class Main2 {
    public static void main(String[] args) {
        List<User> users = new ArrayList<>();
        users.add(new User("Кристина", 25));
        users.add(new User("Бегемот", 32));
        users.add(new User("Динозавр", 45));
        users.add(new User("Ева", 18));
        users.add(new User("Альбина", 27));
        users.add(new User("Жираф", 68));
        users.add(new User("Мама", 45));
        
        users.stream()
                .sorted(Comparator.comparing(User::getName))
                .filter(user -> user.getAge() < 35)
                .limit(3)
                .map(user -> user.getName())
                .forEach(System.out::println);
    }
}

Класс User:


public class User {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

А результат получается

Альбина

Кристина

Бегемот

Объясните пожалуйста, почему так


Ответы (0 шт):