Унарный функциональный интерфейс с лямбдой в Java 8 - PullRequest
0 голосов
/ 17 мая 2018

Я учусь на Java 8 Лямбда и Унарный функциональный интерфейс.У меня есть практическое задание о классе «Function», в котором следующий текст:
1) Создайте класс с именем «FunctionTest» с помощью основного метода
2) Создайте переменную Function и вызовите ее как «setToList»
3) Присвойте setToList лямбда-выражение, в котором взяв набор, он создает Arraylist и добавляет все элементы набора
4) Создайте HashSet и добавьте следующий мир: "Ciao", "Hello", "Hallo "," Bonjour "
5) Вызовите выражение lamda и просмотрите результат

Я пытаюсь следующим образом, но это не работает.В частности, я думаю, что я неправильно 3) шаг.Мне нужно понять, как сделать этот шаг

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.function.Function;

public class FunctionTest {

    public static void main(String[] args) {

        Function<Set, List> setToList = s -> new ArrayList<Set>();
        HashSet<String> hs = new HashSet<String>();
        hs.add("ciao");
        hs.add("hello");
        hs.add("hallo");
        hs.add("bonjour");
        System.out.println(setToList.apply(hs));
    }
}

1 Ответ

0 голосов
/ 17 мая 2018

Вы должны определить это немного по-другому:

Function<Set<String>, List<String>> setToList = s -> new ArrayList<String>(s);

Или лучше использовать ссылку на метод:

Function<Set<String>, List<String>> setToList = ArrayList::new;

Не используйте необработанные типы и используйте конструктор ArrayList, который принимает Collection в качестве ввода

...