java-8 ×19
Создан 05.01.2025
27
голоса
3
ответов
34
просмотров
Как определить, содержится ли определенное значение в массиве в Java?

У меня есть массив строк типа String[] со значениями, например:

public static final String[] VALUES = new String[] {"AB", "BC", "CD", "AE"};

Как мне проверить, содержится ли строка s в массиве VALUES? Есть ли эффективный способ сделать это?

12
голоса
5
ответов
41
просмотров
Сортировка ArrayList пользовательских объектов по свойству

Я прочитал о сортировке ArrayList с использованием Comparator, но во всех примерах люди использовали метод compareTo, который, согласно некоторым источникам, предназначен для строк.

Я хотел отсортировать ArrayList кастомных объектов по одному из их свойств: объекту Date (getStartDay()). Обычно...

12
голоса
5
ответов
59
просмотров
Как установить Java 8 на Mac

Описание проблемы:

Здравствуйте!

Я столкнулся с проблемой при попытке использовать последнюю версию JavaFX, которая требует Java 8. У меня установлена IntelliJ 13 CE на Mac OS X 9 Mavericks. Я запустил установщик Oracle для Java 8, и, судя по всему, файлы были установлены по следующему...

11
голоса
5
ответов
36
просмотров
Оператор двойного двоеточия (::) в Java 8

Я изучал исходный код Java 8 и нашел одну часть кода, которая показалась мне довольно удивительной:

// Определено в IntPipeline.java
@Override
public final OptionalInt reduce(IntBinaryOperator op) {
    return evaluate(ReduceOps.makeInt(op));
}

@Override
public final OptionalInt max() {
 ...
10
голоса
5
ответов
36
просмотров
Java 8: Преобразование List<V> в Map<K, V>

Я хочу преобразовать список объектов в карту, используя стримы и ламбды в Java 8.

Вот как я бы это сделал в Java 7 и ниже:

private Map nameMap(List choices) {
    final Map hashMap = new HashMap();
    for (final Choice choice : choices) {
        hashMap.put(choice.getName(), choice);
  ...
8
голоса
5
ответов
37
просмотров
Как преобразовать список списков в список в Java 8?

Вопрос: Как объединить List> в List с использованием возможностей Java 8?

У меня есть структура данных в виде List>, и я хотел бы преобразовать её в List, содержащий все объекты из вложенных списков, сохраняя порядок итерации.

Как можно сделать это с помощью функциональных...

7
голоса
5
ответов
36
просмотров
Java 8: Уникальные элементы по свойству (Distinct by property)

Как в Java 8 отфильтровать коллекцию, используя API Stream, проверяя уникальность свойства каждого объекта?

У меня есть список объектов типа Person, и я хочу удалить людей с одинаковыми именами.

Используя метод:

persons.stream().distinct();

Я получаю стандартную проверку на...

7
голоса
5
ответов
32
просмотров
Найти первый элемент по предикату

Я только начал изучать лямбды в Java 8 и пытаюсь реализовать некоторые функции, с которыми я привык работать в функциональных языках.

Например, в большинстве функциональных языков есть функция find, которая работает с последовательностями или списками и возвращает первый элемент, для которого...

6
голоса
5
ответов
36
просмотров
Преобразование между java.time.LocalDateTime и java.util.Date

У Java 8 появился совершенно новый API для работы с датой и временем. Одним из самых полезных классов в этом API является LocalDateTime, который используется для хранения значения даты и времени, не зависящего от часового пояса.

Скорее всего, существует миллионы строк кода, использующих устаревший...

6
голоса
5
ответов
21
просмотров
Почему не стоит использовать Optional в аргументах в Java 8?

Я прочитал на многих веб-сайтах, что Optional следует использовать только как тип возвращаемого значения, а не в качестве аргументов методов. Я испытываю трудности с нахождением логической причины для этого. Например, у меня есть логика, которая принимает два параметра Optional. Поэтому, мне...

6
голоса
5
ответов
28
просмотров
Как посчитать количество вхождений символа в строке?

Я имею строку

a.b.c.d

и хочу подсчитать количество вхождений символа '.' на идиоматичном уровне, предпочтительно в виде однострочного решения.

(Ранее я выразил это ограничение как "без использования цикла", если вы задаетесь вопросом, почему все пытаются ответить без цикла).

6
голоса
5
ответов
27
просмотров
Java 8: Как использовать лямбда-функцию, которая выбрасывает исключение?

Я знаю, как создать ссылку на метод, который имеет параметр типа String и возвращает int, это делается следующим образом:

Function<String, Integer>

Однако это не сработает, если функция генерирует исключение. Например, если метод определён так:

Integer myMethod(String s) throws...

6
голоса
5
ответов
29
просмотров
Можно ли использовать Java 8 для разработки под Android?

Я искал информацию в интернете, и неясно, поддерживается ли Java 8 для разработки приложений под Android или нет.

Перед тем как скачать и настроить Java 8, не мог бы кто-нибудь указать на какую-либо "официальную" документацию, где сказано, поддерживается ли Java 8 в разработке для Android?

6
голоса
5
ответов
16
просмотров
Преобразование java.util.Date в java.time.LocalDate

Как лучше всего преобразовать объект java.util.Date в новый класс JDK 8/JSR-310 java.time.LocalDate?

Date input = new Date(); LocalDate date = ???

5
голоса
0
ответов
14
просмотров
В чем разница между Instant и LocalDateTime?

Я знаю, что:

Instant является более "техническим" представлением временной метки (наносекунды) для вычислений. LocalDateTime представляет собой более удобное для человека представление даты и времени включая часовые пояса.

Тем не менее, на мой взгляд, оба типа могут быть использованы для...

5
голоса
5
ответов
15
просмотров
Есть ли краткий способ итерации по стриму с индексами в Java 8?

Заголовок: Как итерироваться по стриму с доступом к индексу в Java?

Текст проблемы:

Я пытаюсь итерироваться по массиву строк с доступом к индексу в стриме на Java, и мне нужно сделать это в краткой форме. Вот мой текущий код:

String[] names = {"Sam","Pamela", "Dave", "Pascal",...
5
голоса
4
ответов
16
просмотров
Java 8 Iterable.forEach() против цикла foreach: что выбрать?

Какой из следующих вариантов является более хорошей практикой в Java 8?

Java 8:

joins.forEach(join -> mIrc.join(mSession, join));

Java 7:

for (String join : joins) {
    mIrc.join(mSession, join);
}

У меня есть много циклов for, которые можно "упростить" с...

0
голоса
2
ответов
3
просмотров
Вывод типа с помощью рефлексии для лямбд в Java 8

Заголовок: Как получить возвращаемый тип лямбда-функции с использованием рефлексии в Java 8?

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

0
голоса
0
ответов
0
просмотров
Почему компилятор Java 11 использует invokevirtual для вызова приватных методов?

Когда я компилирую приведённый ниже код с помощью компилятора Java из OpenJDK 8, вызов метода foo() осуществляется с помощью invokespecial, но при использовании OpenJDK 11 генерируется invokevirtual.

public class Invoke {
  public void call() {
    foo();
  }

  private void foo()...