Что такое
ForkJoinPool в Java, как он работает, и как его использовать для параллельной обработки задач?Ответ
Пример использования
import java.util.concurrent.RecursiveTask;
import java.util.concurrent.ForkJoinPool;
class SumTask extends RecursiveTask<Integer> {
private final int[] array;
private final int start, end;
public SumTask(int[] array, int start, int end) {
this.array = array;
this.start = start;
this.end = end;
}
@Override
protected Integer compute() {
if (end - start <= 5) {
int sum = 0;
for (int i = start; i < end; i++) sum += array[i];
return sum;
} else {
int mid = (start + end) / 2;
SumTask left = new SumTask(array, start, mid);
SumTask right = new SumTask(array, mid, end);
left.fork();
return right.compute() + left.join();
}
}
}
public class Main {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
ForkJoinPool pool = new ForkJoinPool();
int result = pool.invoke(new SumTask(array, 0, array.length));
System.out.println("Сумма: " + result); // Сумма: 55
}
}
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Реализуйте функцию, которая принимает два числа, складывает их и возвращает результат в двоичном формате. Результат должен быть строкой.
Пример:
1, 1 --> "10" (1 + 1 = 2 in decimal or 10 in binary)
5, 9 --> "1110" (5 + 9 = 14 in decimal or 1110 in binary)
Решение задачи на картинке
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
В Java метод
Set.retainAll() позволяет оставить только те элементы множества, которые присутствуют в другом множестве. Это удобно для нахождения пересечения множеств.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🎄2
Пояснение
Когда класс реализует два интерфейса с одинаковыми методами default, необходимо явно указать, какой метод вызывать. В данном случае A.super.show () вызывает метод show из интерфейса A, а B.super.show () — из интерфейса B. Поэтому оба метода выполняются последовательно, и в выводе будет A's show и B's show.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
👍5
Jackson-dataformat-csv
Jackson-dataformat-csv — это библиотека Java, являющаяся модулем расширения популярной библиотеки Jackson для обработки JSON. Она позволяет читать и записывать данные в формате CSV (Comma Separated Values), который широко используется для хранения и обмена табличными данными.
Java Learning👩💻
Jackson-dataformat-csv — это библиотека Java, являющаяся модулем расширения популярной библиотеки Jackson для обработки JSON. Она позволяет читать и записывать данные в формате CSV (Comma Separated Values), который широко используется для хранения и обмена табличными данными.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
В Java метод
Collector.of() позволяет создавать пользовательские коллекции с кастомной логикой для сборки данных. Это даёт полный контроль над процессом объединения элементов.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥2🎄1
Напишите метод, который принимает список строк и возвращает новый список, содержащий только уникальные строки, сохраняя их порядок появления.
Пример:
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> input = List.of("apple", "banana", "apple", "orange", "banana");
List<String> result = removeDuplicates(input);
System.out.println(result);
// Ожидаемый результат: [apple, banana, orange]
}
}
Решение задачи на картинке
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
В Java метод
Optional.flatMap() позволяет преобразовать значение внутри Optional, возвращая другой Optional. Это особенно полезно для работы с вложенными Optional.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥1
Пояснение
Переменная x объявлена как final, что делает её неизменяемой после инициализации. Она выводит значение 10. Класс FinalExample содержит переменную value, также объявленную как final, и метод show, который возвращает строку с этим значением. Финальный метод можно вызывать, но его нельзя переопределить в подклассах. Код компилируется и работает без ошибок.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Ответ:
Anonymous Quiz
82%
10, Value is 42
8%
Ошибка компиляции
7%
10, Value is 10
2%
Ничего не выведет
🤔10👍5❤🔥1😢1
В Java метод
Collectors.toMap() собирает элементы потока в карту (Map), где вы можете указать функции для ключей и значений. Это удобно для преобразования коллекций в структуру ключ-значение.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🎄2
В Java класс
PriorityQueue предоставляет структуру данных с приоритетной очередью, где элементы извлекаются в порядке их приоритета. По умолчанию элементы сортируются по возрастанию, но можно задать собственный компаратор.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🎄2❤🔥1
В Java метод
StringBuilder.reverse() используется для разворота строки. Это удобный способ изменить порядок символов в строке без создания промежуточных объектов.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
Что такое
Optional в Java, зачем он нужен и как его правильно использовать для работы с потенциально отсутствующими значениями?Ответ
Пример использования
import java.util.Optional;
public class Main {
public static void main(String[] args) {
Optional<String> optionalName = Optional.ofNullable(getName());
// Проверяем, есть ли значение
optionalName.ifPresent(name -> System.out.println("Имя: " + name));
// Задаём значение по умолчанию
String defaultName = optionalName.orElse("Без имени");
System.out.println("Имя по умолчанию: " + defaultName);
// Используем map для преобразования значения
optionalName.map(String::toUpperCase)
.ifPresent(name -> System.out.println("Заглавными: " + name));
}
private static String getName() {
return null; // Или любое строковое значение
}
}
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤🔥2
В Java метод
String.replaceAll() заменяет все вхождения текста, соответствующего регулярному выражению, на заданную строку. Это мощный инструмент для обработки строк.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
Напишите метод, который принимает строку и возвращает
Map, где ключи — это слова из строки, а значения — количество их вхождений. Игнорируйте регистр и удаляйте знаки препинания.Пример:
public class Main {
public static void main(String[] args) {
String text = "Hello, world! Hello Java.";
Map<String, Integer> result = countWordFrequency(text);
System.out.println(result);
// Ожидаемый результат:
// {hello=2, world=1, java=1}
}
}Решение задачи на картинке
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🎄2
Пояснение
Статический вложенный класс Nested может быть создан без экземпляра внешнего класса Outer. Код Outer.Nested nested = new Outer.Nested(); корректен, и метод display выводит "Nested class".
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
👍5🤔3🎄2