(new Random())
.ints()
.limit(10)
.sorted()
.forEach(System.out::println);
Как найти максимальное число в наборе?
Stream
.of(5, 3, 4, 55, 2)
.mapToInt(a -> a)
.max()
.getAsInt(); //55
Как найти минимальное число в наборе?
Stream
.of(5, 3, 4, 55, 2)
.mapToInt(a -> a)
.min()
.getAsInt(); //2
Как получить сумму всех чисел в наборе?
Stream
.of(5, 3, 4, 55, 2)
.mapToInt()
.sum(); //69
Как получить среднее значение всех чисел?
Stream
.of(5, 3, 4, 55, 2)
.mapToInt(a -> a)
.average()
.getAsDouble(); //13.8
Какие дополнительные методы для работы с ассоциативными массивами (maps) появились в Java 8?
● putIfAbsent() добавляет пару «ключ-значение», только если ключ отсутствовал:
● map.putIfAbsent("a", "Aa");
● forEach() принимает функцию, которая производит операцию над каждым элементом:
● map.forEach((k, v) -> System.out.println(v));
● compute() создаёт или обновляет текущее значение на полученное в результате вычисления (возможно использовать ключ и текущее значение):
● map.compute("a", (k, v) -> String.valueOf(k).concat(v)); //["a", "aAa"]
● computeIfPresent() если ключ существует, обновляет текущее значение на полученное в результате вычисления (возможно использовать ключ и текущее значение):
|
|
● map.computeIfPresent("a", (k, v) -> k.concat(v));
● computeIfAbsent() если ключ отсутствует, создаёт его со значением, которое вычисляется (возможно использовать ключ):
● map.computeIfAbsent("a", k -> "A".concat(k)); //["a","Aa"]
● getOrDefault() в случае отсутствия ключа, возвращает переданное значение по-умолчанию:
● map.getOrDefault("a", "not found");
● merge() принимает ключ, значение и функцию, которая объединяет передаваемое и текущее значения. Если под заданным ключем значение отсутствует, то записывает туда передаваемое значение.
● map.merge("a", "z", (value, newValue) -> value.concat(newValue)); //["a","Aaz"]
40. Работа с датами и временем.
Что такое LocalDateTime?
LocalDateTime объединяет вместе LocaleDate и LocalTime, содержит дату и время в календарной системе ISO-8601 без привязки к часовому поясу. Время хранится с точностью до наносекунды. Содержит множество удобных методов, таких как plusMinutes, plusHours, isAfter, toSecondOfDay и т.д.
Что такое ZonedDateTime?
java.time.ZonedDateTime — аналог java.util.Calendar, класс с самым полным объемом информации о временном контексте в календарной системе ISO-8601. Включает временную зону, поэтому все операции с временными сдвигами этот класс проводит с её учётом.
Как получить текущую дату с использованием Date Time API из Java 8?
LocalDate.now();
Как добавить 1 неделю, 1 месяц, 1 год, 10 лет к текущей дате с использованием Date Time API?
LocalDate.now().plusWeeks(1);
LocalDate.now().plusMonths(1);
LocalDate.now().plusYears(1);
LocalDate.now().plus(1, ChronoUnit.DECADES);
Как получить следующий вторник используя Date Time API?
LocalDate.now().with(TemporalAdjusters.next(DayOfWeek.TUESDAY));
|
|
Как получить вторую субботу текущего месяца используя Date Time API?
LocalDate
.of(LocalDate.now().getYear(), LocalDate.now().getMonth(), 1)
.with(TemporalAdjusters.nextOrSame(DayOfWeek.SATURDAY))
.with(TemporalAdjusters.next(DayOfWeek.SATURDAY));
Как получить текущее время с точностью до миллисекунд используя Date Time API?
new Date().toInstant();
Как получить текущее время по местному времени с точностью до миллисекунд используя Date Time API?
LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault());
41. Функциональные интерфейсы.