Вопросы
Как определить, содержится ли определенное значение в массиве в Java?
У меня есть массив строк типа String[] со значениями, например:
public static final String[] VALUES = new String[] {"AB", "BC", "CD", "AE"};
Как мне проверить, содержится ли строка s в массиве VALUES? Есть ли эффективный способ сделать это?
Сортировка ArrayList пользовательских объектов по свойству
Я прочитал о сортировке ArrayList с использованием Comparator, но во всех примерах люди использовали метод compareTo
, который, согласно некоторым источникам, предназначен для строк.
Я хотел отсортировать ArrayList кастомных объектов по одному из их свойств: объекту Date (getStartDay()
). Обычно...
Как установить Java 8 на Mac
Описание проблемы:
Здравствуйте!
Я столкнулся с проблемой при попытке использовать последнюю версию JavaFX, которая требует Java 8. У меня установлена IntelliJ 13 CE на Mac OS X 9 Mavericks. Я запустил установщик Oracle для Java 8, и, судя по всему, файлы были установлены по следующему...
Оператор двойного двоеточия (::) в Java 8
Я изучал исходный код Java 8 и нашел одну часть кода, которая показалась мне довольно удивительной:
// Определено в IntPipeline.java
@Override
public final OptionalInt reduce(IntBinaryOperator op) {
return evaluate(ReduceOps.makeInt(op));
}
@Override
public final OptionalInt max() {
...
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);
...
Как преобразовать список списков в список в Java 8?
Вопрос: Как объединить List>
в List
с использованием возможностей Java 8?
У меня есть структура данных в виде List>
, и я хотел бы преобразовать её в List
, содержащий все объекты из вложенных списков, сохраняя порядок итерации.
Как можно сделать это с помощью функциональных...
Java 8: Уникальные элементы по свойству (Distinct by property)
Как в Java 8 отфильтровать коллекцию, используя API Stream, проверяя уникальность свойства каждого объекта?
У меня есть список объектов типа Person
, и я хочу удалить людей с одинаковыми именами.
Используя метод:
persons.stream().distinct();
Я получаю стандартную проверку на...
Найти первый элемент по предикату
Я только начал изучать лямбды в Java 8 и пытаюсь реализовать некоторые функции, с которыми я привык работать в функциональных языках.
Например, в большинстве функциональных языков есть функция find
, которая работает с последовательностями или списками и возвращает первый элемент, для которого...
Преобразование между java.time.LocalDateTime и java.util.Date
У Java 8 появился совершенно новый API для работы с датой и временем. Одним из самых полезных классов в этом API является LocalDateTime, который используется для хранения значения даты и времени, не зависящего от часового пояса.
Скорее всего, существует миллионы строк кода, использующих устаревший...
Почему не стоит использовать Optional в аргументах в Java 8?
Я прочитал на многих веб-сайтах, что Optional следует использовать только как тип возвращаемого значения, а не в качестве аргументов методов. Я испытываю трудности с нахождением логической причины для этого. Например, у меня есть логика, которая принимает два параметра Optional. Поэтому, мне...
Как посчитать количество вхождений символа в строке?
Я имею строку
a.b.c.d
и хочу подсчитать количество вхождений символа '.' на идиоматичном уровне, предпочтительно в виде однострочного решения.
(Ранее я выразил это ограничение как "без использования цикла", если вы задаетесь вопросом, почему все пытаются ответить без цикла).
Java 8: Как использовать лямбда-функцию, которая выбрасывает исключение?
Я знаю, как создать ссылку на метод, который имеет параметр типа String и возвращает int, это делается следующим образом:
Function<String, Integer>
Однако это не сработает, если функция генерирует исключение. Например, если метод определён так:
Integer myMethod(String s) throws...
Можно ли использовать Java 8 для разработки под Android?
Я искал информацию в интернете, и неясно, поддерживается ли Java 8 для разработки приложений под Android или нет.
Перед тем как скачать и настроить Java 8, не мог бы кто-нибудь указать на какую-либо "официальную" документацию, где сказано, поддерживается ли Java 8 в разработке для Android?
Преобразование java.util.Date в java.time.LocalDate
Как лучше всего преобразовать объект java.util.Date в новый класс JDK 8/JSR-310 java.time.LocalDate?
Date input = new Date(); LocalDate date = ???
В чем разница между Instant и LocalDateTime?
Я знаю, что:
Instant является более "техническим" представлением временной метки (наносекунды) для вычислений. LocalDateTime представляет собой более удобное для человека представление даты и времени включая часовые пояса.
Тем не менее, на мой взгляд, оба типа могут быть использованы для...
Есть ли краткий способ итерации по стриму с индексами в Java 8?
Заголовок: Как итерироваться по стриму с доступом к индексу в Java?
Текст проблемы:
Я пытаюсь итерироваться по массиву строк с доступом к индексу в стриме на Java, и мне нужно сделать это в краткой форме. Вот мой текущий код:
String[] names = {"Sam","Pamela", "Dave", "Pascal",...
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
, которые можно "упростить" с...
Вывод типа с помощью рефлексии для лямбд в Java 8
Заголовок: Как получить возвращаемый тип лямбда-функции с использованием рефлексии в Java 8?
Я экспериментировал с новыми лямбда-выражениями в Java 8 и пытаюсь выяснить, как с помощью рефлексии узнать возвращаемый тип класса лямбда-функции. Особенно меня интересуют случаи, когда лямбда реализует...
Почему компилятор Java 11 использует invokevirtual для вызова приватных методов?
Когда я компилирую приведённый ниже код с помощью компилятора Java из OpenJDK 8, вызов метода foo()
осуществляется с помощью invokespecial
, но при использовании OpenJDK 11 генерируется invokevirtual
.
public class Invoke {
public void call() {
foo();
}
private void foo()...