Вопросы с тегом «java-8»

Используйте этот тег для вопросов, относящихся к Java 8, которая является версией 8 (внутренний номер 1.8) платформы Java, выпущенной 18 марта 2014 года. В большинстве случаев вам также следует указывать тег java.

6
Фильтруйте значения, только если не нуль, используя лямбду в Java8
У меня есть список объектов, скажем car. Я хочу отфильтровать этот список на основе какого-либо параметра, используя Java 8. Но если параметр есть null, он выбрасывает NullPointerException. Как отфильтровать нулевые значения? Текущий код выглядит следующим образом requiredCars = cars.stream().filter(c -> c.getName().startsWith("M")); Это бросает, NullPointerExceptionесли getName()возвращается null.

4
Можно ли привести поток в Java 8?
Можно ли привести поток в Java 8? Скажем, у меня есть список объектов, я могу сделать что-то вроде этого, чтобы отфильтровать все дополнительные объекты: Stream.of(objects).filter(c -> c instanceof Client) Однако после этого, если я хочу что-то сделать с клиентами, мне нужно разыграть каждого из них: Stream.of(objects).filter(c -> c instanceof Client) …
160 java  java-8  java-stream 

6
Может ли Java-лямбда иметь более 1 параметра?
В Java возможно ли лямбда принимать несколько разных типов? Т.е. работает одна переменная: Function <Integer, Integer> adder = i -> i + 1; System.out.println (adder.apply (10)); Varargs также работают: Function <Integer [], Integer> multiAdder = ints -> { int sum = 0; for (Integer i : ints) { sum += …
158 java  lambda  java-8 

5
Как сериализовать лямбду?
Как я могу элегантно сериализовать лямбду? Например, код ниже выдает a NotSerializableException. Как я могу это исправить, не создавая SerializableRunnable"фиктивный" интерфейс? public static void main(String[] args) throws Exception { File file = Files.createTempFile("lambda", "ser").toFile(); try (ObjectOutput oo = new ObjectOutputStream(new FileOutputStream(file))) { Runnable r = () -> System.out.println("Can I be …


1
В чем разница между ZonedDateTime и OffsetDateTime?
Я прочитал документацию, но я все еще не могу понять, когда я должен использовать один или другой: OffsetDateTime ZonedDateTime Согласно документации OffsetDateTimeследует использовать дату записи в базу данных, но я не понимаю, почему.
155 java  java-8  java-time 

10
Для чего используются функциональные интерфейсы в Java 8?
Я встретил новый термин в Java 8: «функциональный интерфейс». Я мог найти только одно применение при работе с лямбда-выражениями . Java 8 предоставляет несколько встроенных функциональных интерфейсов, и если мы хотим определить какой-либо функциональный интерфейс, мы можем использовать @FunctionalInterfaceаннотацию. Это позволит нам объявить только один метод в интерфейсе. Например: @FunctionalInterface …
154 java  lambda  interface  java-8 

26
Java 8 поток в обратном порядке
Общий вопрос: как правильно реверсировать поток? Предполагая, что мы не знаем, из какого типа элементов состоит этот поток, каков общий способ реверсирования любого потока? Конкретный вопрос: IntStreamпредоставляет метод диапазона для генерации целых чисел в определенном диапазоне IntStream.range(-range, 0), теперь, когда я хочу изменить его, диапазон переключения с 0 на отрицательный …

9
Невозможно получить LocalDateTime из TemporalAccessor при разборе LocalDateTime (Java 8)
Я просто пытаюсь преобразовать строку даты в объект DateTime в Java 8. После запуска следующих строк: DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); LocalDateTime dt = LocalDateTime.parse("20140218", formatter); Я получаю следующую ошибку: Exception in thread "main" java.time.format.DateTimeParseException: Text '20140218' could not be parsed: Unable to obtain LocalDateTime from TemporalAccessor: {},ISO resolved to 2014-02-18 …

4
Зачем нужен комбайнер для метода reduce, преобразующего тип в java 8
Мне сложно полностью понять роль, которую combinerвыполняет reduceметод Streams . Например, следующий код не компилируется: int length = asList("str1", "str2").stream() .reduce(0, (accumulatedInt, str) -> accumulatedInt + str.length()); Ошибка компиляции говорит: (несоответствие аргументов; int не может быть преобразован в java.lang.String) но этот код компилируется: int length = asList("str1", "str2").stream() .reduce(0, (accumulatedInt, …
150 java  java-8  java-stream 

14
Сжатие потоков с использованием JDK8 с использованием лямбды (java.util.stream.Streams.zip)
В JDK 8 с лямбдой b93 в b93 был класс java.util.stream.Streams.zip, который можно использовать для архивирования потоков (это показано в учебном пособии Dhananjay Nene, посвященном изучению Java8-лямбд. Часть 1 ). Эта функция: Создает ленивый и последовательный объединенный поток, элементы которого являются результатом объединения элементов двух потоков. Однако в b98 это …

4
Как указать типы функций для методов void (не Void) в Java8?
Я экспериментирую с Java 8, чтобы понять, как он функционирует как первоклассный гражданин. У меня есть следующий фрагмент: package test; import java.util.*; import java.util.function.*; public class Test { public static void myForEach(List<Integer> list, Function<Integer, Void> myFunction) { list.forEach(functionToBlock(myFunction)); } public static void displayInt(Integer i) { System.out.println(i); } public static void …
149 java  java-8 

2
Как обеспечить порядок обработки в потоках java8?
Я хочу обрабатывать списки внутри XMLобъекта Java. Я должен обеспечить обработку всех элементов в порядке их получения. Должен ли я поэтому призвать sequentialкаждого streamя использую? list.stream().sequential().filter().forEach() Или достаточно просто использовать поток, если я не использую параллелизм? list.stream().filter().forEach()
148 java  java-8  java-stream 

10
Можете ли вы разделить поток на два потока?
У меня есть набор данных, представленный потоком Java 8: Stream<T> stream = ...; Я вижу, как отфильтровать его, чтобы получить случайное подмножество - например, Random r = new Random(); PrimitiveIterator.OfInt coin = r.ints(0, 2).iterator(); Stream<T> heads = stream.filter((x) -> (coin.nextInt() == 0)); Я также вижу, как можно уменьшить этот поток, …
146 java  java-8  java-stream 

4
Java 8: производительность потоков и коллекций
Я новичок в Java 8. Я до сих пор не знаю API глубоко, но я сделал небольшой неформальный тест, чтобы сравнить производительность нового Streams API и старых добрых коллекций. Тест состоит в фильтрации списка Integer, и для каждого четного числа, вычислить квадратный корень и хранить его в результате Listиз Double. …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.