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

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

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

3
Чи створює лямбда-вираз об'єкт на купі кожен раз, коли він виконується?
Коли я повторюю колекцію, використовуючи новий синтаксичний цукор Java 8, наприклад myStream.forEach(item -> { // do something useful }); Хіба це не еквівалент фрагменту "старого синтаксису" нижче? myStream.forEach(new Consumer<Item>() { @Override public void accept(Item item) { // do something useful } }); Чи означає це, що новий анонімний Consumerоб’єкт створюється …
182 java  lambda  java-8 

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

4
Які еквіваленти Java 8 Stream.collect доступні в стандартній бібліотеці Котліна?
У Java 8 є те, Stream.collectщо дозволяє агрегувати колекції. У Котліна це не існує аналогічно, як, можливо, як набір функцій розширення в stdlib. Але незрозуміло, що таке еквівалентність для різних випадків використання. Наприклад, у верхній частині JavaDoc дляCollectors є приклади, написані для Java 8, і при перенесенні їх на Kolin …

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 

6
Згрупуйте, рахуючи в потоці API 8
Я намагаюся знайти простий спосіб в 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()) }) .collect(Collectors.toList()); collect2.forEach(o …

5
Що робить оператор зі стрілками '->' у Java?
Під час полювання через якийсь код я натрапив на оператора стрілки, що саме це робить? Я думав, що у Java немає оператора зі стрілками. return (Collection<Car>) CollectionUtils.select(listOfCars, (arg0) -> { return Car.SEDAN == ((Car)arg0).getStyle(); }); Детальніше : Java 6, колекція Apache Commons, IntelliJ 12 Оновлення / відповідь: Виявляється, IntelliJ 12 …

15
Java 8: лямбда-потоки, фільтр методом за винятком
У мене є проблема випробувати лямбдаські вирази Java 8. Зазвичай це працює добре, але тепер у мене є методи, які кидають IOExceptions. Найкраще, якщо ви подивитеся на такий код: 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.