Запитання з тегом «java-8»

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

7
Як перетворити ітератор в потік?
Я шукаю стислий спосіб перетворити 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
На цей питання є відповіді на Stack Overflow на російському : Цикл передбачити проти 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()); На жаль, …

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 -> …

9
Перетворити Iterable в Stream за допомогою Java 8 JDK
У мене є інтерфейс, який повертається java.lang.Iterable<T>. Я хотів би маніпулювати цим результатом за допомогою Java 8 Stream API. Однак Iterable не може "потокувати". Будь-яка ідея, як використовувати Iterable як Stream, не перетворюючи його на List?

14
Спеціальний пул потоків у паралельному потоці Java 8
Чи можна вказати спеціальний пул потоків для паралельного потоку Java 8 ? Я не можу його знайти ніде. Уявіть, що у мене є серверна програма, і я хотів би використовувати паралельні потоки. Але додаток великий і багатопотоковий, тому я хочу його розділити. Я не хочу повільно виконуваного завдання в одному …

18
Чому не слід використовувати аргументи Java 8 Необов’язково
Я читав на багатьох веб-сайтах Необов’язково використовуватись лише як тип повернення, а не використовуватись у аргументах методів. Я намагаюся знайти логічну причину. Наприклад, у мене є логіка, яка має 2 необов'язкові параметри. Тому я думаю, було б доцільно написати свій підпис методу таким чином (рішення 1): public int calculateSomething(Optional<String> p1, …
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) -> a+b); class …
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об'єктом: Як я можу потім перетворити LocalDateTimeекземпляр назад …

5
Чому в методах інтерфейсу Java 8 "остаточний" не дозволено?
Однією з найбільш корисних особливостей Java 8 є нові defaultметоди інтерфейсів. По суті є дві причини (можуть бути й інші), чому вони були введені: Надання фактичних реалізацій за замовчуванням. Приклад:Iterator.remove() Дозвіл еволюції API JDK Приклад:Iterable.forEach() З точки зору дизайнера API, мені хотілося б використовувати інші модифікатори для методів інтерфейсу, наприклад …

12
Java 8 NullPointerException в Collectors.toMap
Java 8 Collectors.toMapвикидає a, NullPointerExceptionякщо одне зі значень "null". Я не розумію такої поведінки, карти можуть містити нульові вказівники як значення без проблем. Чи є вагома причина, чому значення не можуть бути нульовими Collectors.toMap? Крім того, чи є приємний спосіб виправлення цього Java 8, або я повинен повернутися до старого …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.