public String translate(String en) {
return Arrays.stream(en.split(" ")) // создаем стрим из массива. Массив - строка разбитая по пробелам
.map(dictionary::get) // Мапим каждый элемент из коллекции dictionary
.collect(Collectors.joining(" ")); // собираем стрим в одну строку, прибавляя пробел между элементами
}
Создайте класс MyTestMethod с универсальным статическим методом calcNum (с двумя параметрами: массивом T[] и переменной maxElem типа T), который подсчитывает количество элементов в массиве T[], превышающих указанный элемент maxElem.
static <T extends Comparable<T>> int calcNum(T[] array, T maxElem) {
int count = 0;
// Тривиальная реализация подсчета количества элементов, больших чем maxElem.
return count;
}
// Считать запрос
String request = getRequest();
// Сделать запрос к серверу
String response = getResponseFromWiki(request);
// Распарсить ответ
(?) result = parseResponse(response);
// Вывести результат
showResult(result);
зачем он написал помещать разделяемый ресурс внутрь объекта
Или можно сделать только метод совместно разделяемым ресурсом без засовывания его в объект?
public void swap() {
synchronized (this)
{
//...логика метода
}
}
public synchronized void swap() {
}
}
public class Main {
private Object obj = new Object();
public void doSomething() {
//...какая-то логика, доступная для всех потоков
synchronized (obj) {
//логика, которая одновременно доступна только для одного потока
}
}
}