List<User> users = List.of(new User(1, "Max"));
// Выведем всех пользователей на экран
users.stream()
.forEach(System.out::println); // => User{id=1, name='Max'}
List<User> users2 = List.of(new User(3, "Nick"));
// Преобразуем списки пользователей в словарь
Map<Integer, String> namesMap = Stream.concat(users.stream(), users2.stream())
.collect(Collectors.toMap(User::getId, User::getName, (v1, v2) -> v1));
System.out.println(namesMap); // => {1=Max, 3=Nick}
// Пользователь с самым коротким именем
User firstUser = users.stream()
.sorted(Comparator.comparing(x -> x.getName().length()))
.findFirst()
.orElse(null);
System.out.println(firstUser); // => User{id=1, name='Max'}
// Пользователь с наименьшим id
User firstUserAgain = users.stream()
.sorted(Comparator.comparingInt(x -> x.getId()))
.findFirst()
.orElseThrow(() -> new IllegalArgumentException("no users found"));
System.out.println(firstUserAgain); // => User{id=1, name='Max'}
private static Integer getUserId(String name) throws IllegalArgumentException {
for (User user : users) {
if (user.getName().equals(name)) {
return user.getId();
}
}
throw new IllegalArgumentException("No user with such name!");
}
// throws IllegalArgumentException
Integer id = getUserId("Ivan");
System.out.println(id);
public class User {
private Integer id;
private String name;
public User(Integer id, String name) {
this.id = id;
this.name = name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder("User{");
sb.append("id=").append(id);
sb.append(", name='").append(name).append('\'');
sb.append('}');
return sb.toString();
}
}
Вам ответят команда поддержки Хекслета или другие студенты.
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
Наши выпускники работают в компаниях:
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.
Зарегистрируйтесь или войдите в свой аккаунт
Задавайте вопросы, если хотите обсудить теорию или упражнения. Команда поддержки Хекслета и опытные участники сообщества помогут найти ответы и решить задачу