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

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

8
Как преобразовать итератор в поток?
Я ищу краткий способ преобразовать Iteratorв Streamили более конкретно, чтобы «просмотреть» итератор в виде потока. Из соображений производительности я бы хотел избежать копирования итератора в новый список: Iterator<String> sourceIterator = Arrays.asList("A", "B", "C").iterator(); Collection<String> copyList = new ArrayList<String>(); sourceIterator.forEachRemaining(copyList::add); Stream<String> targetStream = copyList.stream(); Основываясь на некоторых предложениях в комментариях, я …
468 java  iterator  java-8 

8
Java 8 Iterable.forEach () против цикла foreach
На этот вопрос есть ответы на Переполнение стека на русском : Цикл foreach против Iterable.foreach в Java 8: что лучше? Что из следующего является лучшей практикой в ​​Java 8? Java 8: joins.forEach(join -> mIrc.join(mSession, join)); Java 7: for (String join : joins) { mIrc.join(mSession, join); } У меня есть много …

27
Java 8 Различается по свойству
В Java 8, как я могу отфильтровать коллекцию, используя StreamAPI, проверив отличимость свойства каждого объекта? Например, у меня есть список Personобъектов, и я хочу удалить людей с тем же именем, persons.stream().distinct(); Будет использовать проверку равенства по умолчанию для Personобъекта, поэтому мне нужно что-то вроде, persons.stream().distinct(p -> p.getName()); К сожалению, distinct()метод …

14
Получение списка из java.util.stream.Stream в Java 8
Я играл с лямбдами Java 8, чтобы легко фильтровать коллекции. Но я не нашел краткий способ получить результат в виде нового списка в том же утверждении. Вот мой самый лаконичный подход: List<Long> sourceLongList = Arrays.asList(1L, 10L, 50L, 80L, 100L, 120L, 133L, 333L); List<Long> targetLongList = new ArrayList<>(); sourceLongList.stream().filter(l -> l …

9
Преобразование Iterable в Stream с использованием Java 8 JDK
У меня есть интерфейс, который возвращается java.lang.Iterable<T>. Я хотел бы манипулировать этим результатом с помощью Java 8 Stream API. Однако Iterable не может «течь». Любая идея, как использовать Iterable в качестве потока без преобразования его в список?

14
Пользовательский пул потоков в параллельном потоке Java 8
Можно ли указать пользовательский пул потоков для параллельного потока Java 8 ? Я не могу найти это нигде. Представьте, что у меня есть серверное приложение, и я хотел бы использовать параллельные потоки. Но приложение большое и многопоточное, поэтому я хочу разделить его. Я не хочу медленное выполнение задачи в одном …

18
Почему Java 8 необязательно не использовать в аргументах
Я читал на многих веб-сайтах Необязательный должен использоваться только в качестве возвращаемого типа, а не в аргументах метода. Я изо всех сил пытаюсь найти логическую причину, почему. Например, у меня есть часть логики, которая имеет 2 дополнительных параметра. Поэтому я думаю, что имеет смысл написать сигнатуру моего метода следующим образом …
392 java  java-8  optional 

22
Есть ли краткий способ перебора потока с индексами в Java 8?
Есть ли краткий способ перебора потока, имея доступ к индексу в потоке? String[] names = {"Sam","Pamela", "Dave", "Pascal", "Erik"}; List<String> nameList; Stream<Integer> indices = intRange(1, names.length).boxed(); nameList = zip(indices, stream(names), SimpleEntry::new) .filter(e -> e.getValue().length() <= e.getKey()) .map(Entry::getValue) .collect(toList()); что выглядит довольно обидно по сравнению с приведенным там примером LINQ string[] …
382 java  java-8  java-stream 



14
Как определить метод, который принимает лямбда в качестве параметра в Java 8?
В Java 8 методы могут быть созданы как лямбда-выражения и могут быть переданы по ссылке (с небольшой работой под капотом). Есть много примеров онлайн с лямбдами, которые создаются и используются с методами, но нет примеров того, как сделать метод, принимающий лямбду в качестве параметра. Какой синтаксис для этого? MyClass.method((a, b) …
363 java  lambda  java-8 

14
Разница между окончательным и фактически окончательным
Я играю с лямбдами в Java 8, и я столкнулся с предупреждением local variables referenced from a lambda expression must be final or effectively final. Я знаю, что когда я использую переменные внутри анонимного класса, они должны быть финальными во внешнем классе, но все же - в чем разница между …

6
Как анализировать / форматировать даты с LocalDateTime? (Java 8)
В Java 8 добавлен новый API java.time для работы с датами и временем ( JSR 310 ). У меня есть дата и время в виде строки (например "2014-04-08 12:30"). Как я могу получить LocalDateTimeэкземпляр из данной строки? После того, как я закончил работу с LocalDateTimeобъектом: Как я могу затем преобразовать …

5
Почему «final» не допускается в интерфейсных методах Java 8?
Одной из наиболее полезных функций Java 8 являются новые defaultметоды интерфейсов. По сути, есть две причины (могут быть и другие), почему они были введены: Предоставление фактических реализаций по умолчанию. Пример:Iterator.remove() С учетом эволюции JDK API. Пример:Iterable.forEach() С точки зрения разработчика API, мне бы хотелось иметь возможность использовать другие модификаторы в …

12
Как отрицать предикат ссылки на метод
В Java 8 вы можете использовать ссылку на метод для фильтрации потока, например: Stream<String> s = ...; long emptyStrings = s.filter(String::isEmpty).count(); Есть ли способ создать ссылку на метод, который является отрицанием существующего, то есть что-то вроде: long nonEmptyStrings = s.filter(not(String::isEmpty)).count(); Я мог бы создать notметод, как показано ниже, но мне …
331 java  predicate  java-8  negate 

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