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

103
Объяснение поставщика и потребителя Java 8 для непрофессионала

Как программист не-Java обучения Java, я читал о Supplierи Consumerинтерфейсы в данный момент. И я не могу осмыслить их использование и значение. Когда и почему вы должны использовать эти интерфейсы? Может ли кто-нибудь дать мне простой пример для непрофессионала ... Я считаю, что примеры Doc...

101
Java 8 Stream с пакетной обработкой

У меня есть большой файл со списком предметов. Я хотел бы создать пакет элементов, сделать HTTP-запрос с этим пакетом (все элементы необходимы в качестве параметров в HTTP-запросе). Я могу сделать это очень легко с помощью forцикла, но, как любитель Java 8, я хочу попробовать написать это с...

100
Возврат из лямбды forEach () в java

Я пытаюсь изменить некоторые циклы for-each на лямбда- forEach()методы, чтобы открыть для себя возможности лямбда-выражений. Кажется возможным следующее: ArrayList<Player> playersOfTeam = new ArrayList<Player>(); for (Player player : players) { if (player.getTeam().equals(teamName)) {...

100
Как проверить, пуст ли Java 8 Stream?

Как я могу проверить, является ли a Streamпустым, и вызвать исключение, если это не так, как нетерминальную операцию? По сути, я ищу что-то эквивалентное приведенному ниже коду, но без материализации промежуточного потока. В частности, проверка не должна выполняться до того, как поток будет...

99
Правильное использование Optional.ifPresent ()

Я пытаюсь понять ifPresent() метод OptionalAPI в Java 8. У меня простая логика: Optional<User> user=... user.ifPresent(doSomethingWithUser(user.get())); Но это приводит к ошибке компиляции: ifPresent(java.util.functionError:(186, 74) java: 'void' type not allowed here) Конечно, я могу...

99
Множественные нулевые проверки в Java 8

У меня есть приведенный ниже код, который немного уродлив для множественных нулевых проверок. String s = null; if (str1 != null) { s = str1; } else if (str2 != null) { s = str2; } else if (str3 != null) { s = str3; } else { s = str4; } Поэтому я попытался использовать, Optional.ofNullableкак...

99
Когда мне следует использовать потоки?

Я просто столкнулся с вопросом при использовании a Listи его stream()метода. Хотя я знаю, как их использовать, я не совсем уверен, когда их использовать. Например, у меня есть список, содержащий разные пути в разные места. Теперь я хотел бы проверить, содержит ли один заданный путь какой-либо из...

97
Превратите будущее Java в CompletableFuture

В Java 8 представлена CompletableFutureновая реализация Future, которую можно компоновать (включает набор методов thenXxx). Я хотел бы использовать только это, но многие библиотеки, которые я хочу использовать, возвращают только несоставные Futureэкземпляры. Есть ли способ обернуть возвращенные...

97
Почему Collections.sort использует Mergesort, а Arrays.sort - нет?

Я использую JDK-8 (x64). Для Arrays.sort(примитивов) я нашел в документации по Java следующее: Алгоритм сортировки - это Dual-Pivot Quicksort от Владимира Ярославского, Джона Бентли и Джошуа Блоха. Для Collections.sort(объектов) я нашел этот "Тимсорт": Эта реализация представляет собой стабильную,...

95
Completetablefuture join vs get

В чем разница между CompletableFuture.get()и CompletableFuture.join()? Ниже мой код: List<String> process() { List<String> messages = Arrays.asList("Msg1", "Msg2", "Msg3", "Msg4", "Msg5", "Msg6", "Msg7", "Msg8", "Msg9", "Msg10", "Msg11", "Msg12"); MessageService messageService = new...

95
Какова цель ключевого слова по умолчанию в Java?

Интерфейс в Java похож на класс, но тело интерфейса может включать только абстрактные методы и finalполя (константы). Недавно я увидел вопрос, который выглядит так interface AnInterface { public default void myMethod() { System.out.println("D"); } } Согласно определению интерфейса, разрешены...

94
Когда инициализируется интерфейс с методом по умолчанию?

При поиске ответа на этот вопрос в спецификации языка Java я узнал, что Перед инициализацией класса должен быть инициализирован его прямой суперкласс, но интерфейсы, реализованные классом, не инициализируются. Точно так же суперинтерфейсы интерфейса не инициализируются до инициализации интерфейса....

94
_ (подчеркивание) - зарезервированное ключевое слово

Я только что заменил sследующее лямбда-выражение на _: s -> Integer.parseInt(s) Компилятор Eclipse говорит: '_' не следует использовать в качестве идентификатора, поскольку это зарезервированное ключевое слово начиная с уровня источника 1.8. Я не нашел никаких объяснений в лексической структуре...

94
Почему я не могу сопоставить целые числа со строками при потоковой передаче из массива?

Этот код работает (взят из Javadoc): List<Integer> numbers = Arrays.asList(1, 2, 3, 4); String commaSeparatedNumbers = numbers.stream() .map(i -> i.toString()) .collect(Collectors.joining(", ")); Этот не может быть скомпилирован: int[] numbers = {1, 2, 3, 4}; String commaSeparatedNumbers...

94
Почему в Java 8 емкость ArrayList по умолчанию равна нулю?

Насколько я помню, до Java 8 емкость по умолчанию ArrayListбыла 10. Удивительно, но комментарий к конструктору по умолчанию (void) по-прежнему говорит: Constructs an empty list with an initial capacity of ten. Откуда ArrayList.java: /** * Shared empty array instance used for default sized empty...

93
Реализация HashMap Java 8

Согласно следующему документу ссылки: Реализация Java HashMap Меня смущает реализация HashMap(а точнее доработка HashMap). Мои запросы: во-первых static final int TREEIFY_THRESHOLD = 8; static final int UNTREEIFY_THRESHOLD = 6; static final int MIN_TREEIFY_CAPACITY = 64; Почему и как используются...

92
Использование потоков для сбора в TreeSet с настраиваемым компаратором

Работая в Java 8, у меня есть такое TreeSetопределение: private TreeSet<PositionReport> positionReports = new TreeSet<>(Comparator.comparingLong(PositionReport::getTimestamp)); PositionReport это довольно простой класс, определенный следующим образом: public static final class...