comparator сортирует не так, как задумано
Делаю домашнее задание, в потоке фильтрую элементы коллекции List. Использую Comparator для сортировки элементов по алфавитному порядку. Смотрю на код и элементы должны отсортированы в таком порядке:
- Альбина
- Бегемот.
- Ева.
Код:
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;
}
}
А результат получается
Альбина
Кристина
Бегемот
Объясните пожалуйста, почему так