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

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

3
Создает ли лямбда-выражение объект в куче при каждом выполнении?
Когда я перебираю коллекцию, используя новый синтаксический сахар Java 8, такой как myStream.forEach(item -> { // do something useful }); Разве это не эквивалентно приведенному ниже фрагменту "старого синтаксиса"? myStream.forEach(new Consumer<Item>() { @Override public void accept(Item item) { // do something useful } }); Означает ли это, что новый анонимный …
187 java  lambda  java-8 

9
Есть ли в Java SE 8 пары или кортежи?
Я играю с ленивыми функциональными операциями в Java SE 8, и я хочу mapиндексировать iпару / кортеж (i, value[i]), затем filterна основе второго value[i]элемента и, наконец, выводить только индексы. Должен ли я все еще страдать так: Что эквивалентно паре C ++ <L, R> в Java? в смелую новую эпоху лямбд …

9
Как использовать лямбду Java8 для сортировки потока в обратном порядке?
Я использую Java-лямбду для сортировки списка. как я могу отсортировать его в обратном порядке? Я видел этот пост , но я хочу использовать Java 8 лямбда. Вот мой код (я использовал * -1) как взломать Arrays.asList(files).stream() .filter(file -> isNameLikeBaseLine(file, baseLineFile.getName())) .sorted(new Comparator<File>() { public int compare(File o1, File o2) { …

4
Какие эквиваленты Java 8 Stream.collect доступны в стандартной библиотеке Kotlin?
В Java 8 есть Stream.collectвозможность объединения по коллекциям. В Kotlin, это не существует таким же образом, за исключением, может быть, как набор функций расширения в stdlib. Но не ясно, каковы эквивалентности для разных вариантов использования. Например, в верхней части JavaDocCollectors находятся примеры, написанные для Java 8, и при переносе их …

5
Добавление BigDecimals с помощью потоков
У меня есть коллекция BigDecimals (в этом примере, а LinkedList), которые я хотел бы добавить вместе. Возможно ли использовать потоки для этого? Я заметил, что у Streamкласса есть несколько методов Stream::mapToInt Stream::mapToDouble Stream::mapToLong У каждого из которых есть удобный sum()метод. Но, как мы знаем, floatи doubleарифметика почти всегда плохая идея. …

7
Java 8: Как мне работать с методами исключения в потоках?
Предположим, у меня есть класс и метод class A { void foo() throws Exception() { ... } } Теперь я хотел бы вызывать foo для каждого экземпляра, Aдоставляемого потоком, например: void bar() throws Exception { Stream<A> as = ... as.forEach(a -> a.foo()); } Вопрос: Как правильно обработать исключение? Код не …

2
Общая верхняя граница возвращаемого типа - интерфейс против класса - удивительно правильный код
Это пример из стороннего библиотечного API, но упрощенный. Скомпилировано с Oracle JDK 8u72 Рассмотрим эти два метода: <X extends CharSequence> X getCharSequence() { return (X) "hello"; } <X extends String> X getString() { return (X) "hello"; } Оба сообщают о предупреждении «непроверенный актерский состав» - я понимаю, почему. Меня сбивает …
171 java  generics  java-8 

5
Что делает оператор стрелки '->' в Java?
При поиске кода я наткнулся на оператор стрелки, что именно он делает? Я думал, что у Java не было оператора стрелки. return (Collection<Car>) CollectionUtils.select(listOfCars, (arg0) -> { return Car.SEDAN == ((Car)arg0).getStyle(); }); Подробности : Java 6, коллекция Apache Commons, IntelliJ 12 Обновление / ответ: Оказывается, IntelliJ 12 поддерживает Java 8, …

6
Сгруппировать, считая в Java 8 stream API
Я пытаюсь найти простой способ в Java 8 stream API, чтобы сделать группировку, я вышел с этим сложным способом! List<String> list = new ArrayList<>(); list.add("Hello"); list.add("Hello"); list.add("World"); Map<String, List<String>> collect = list.stream().collect( Collectors.groupingBy(o -> o)); System.out.println(collect); List<String[]> collect2 = collect .entrySet() .stream() .map(e -> new String[] { e.getKey(), String.valueOf(e.getValue().size()) }) …

15
Java 8: лямбда-потоки, фильтрация по методам с исключением
У меня возникла проблема при проверке лямбда-выражений Java 8. Обычно это работает нормально, но теперь у меня есть методы, которые бросают IOException. Лучше всего, если вы посмотрите на следующий код: class Bank{ .... public Set<String> getActiveAccountNumbers() throws IOException { Stream<Account> s = accounts.values().stream(); s = s.filter(a -> a.isActive()); Stream<String> ss …

8
Intellij - Невозможно использовать более новые классы Java 8 - Ошибка: «Использование API задокументировано как @since 1.6+ ..»
Я пытаюсь использовать java.lang.function.Functionв моей кодовой базе Java 8, но я продолжаю получать следующую ошибку в Intellij. Использование API, задокументированного как @since 1.6+. Эта проверка находит все способы использования, которые имеют тег @since в своей документации. Это может быть полезно, когда разработка выполняется под более новой версией SDK в качестве …

8
Добавление двух потоков Java 8 или дополнительного элемента в поток
Я могу добавить потоки или дополнительные элементы, например: Stream stream = Stream.concat(stream1, Stream.concat(stream2, Stream.of(element)); И я могу добавлять новые вещи, как я, как это: Stream stream = Stream.concat( Stream.concat( stream1.filter(x -> x!=0), stream2) .filter(x -> x!=1), Stream.of(element)) .filter(x -> x!=2); Но это безобразно, потому что concatстатично. Если бы concatэто был …

5
Можно ли скомпилировать код Java 8 для запуска на Java 7 JVM?
Java 8 представляет важные новые языковые функции, такие как лямбда-выражения. Эти изменения в языке сопровождаются такими значительными изменениями в скомпилированном байт-коде, которые могут помешать его запуску на виртуальной машине Java 7 без использования какого-либо ретро-переводчика?

9
Должен ли я вернуть коллекцию или поток?
Предположим, у меня есть метод, который возвращает представление только для чтения в список участников: class Team { private List < Player > players = new ArrayList < > (); // ... public List < Player > getPlayers() { return Collections.unmodifiableList(players); } } Далее предположим, что все, что делает клиент, это …


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