我正在学习 Java 8 Lambda 和一元功能接口。我有一个关于“功能”类的练习作业,使用HashMap
以下步骤:
Function<Set, Map>
创建一个接收 aSet
并HashMap
使用 lambda 表达式创建 a 的类型变量将单词放在地图中,使用该单词的大写首字母作为键
执行 lambda 表达式并查看结果
我尝试以下方式,但它不起作用。我认为问题出在 lambda 表达式中,但我想了解我必须做什么(为简单起见,我将同一个词作为键)。这样,结果为“null”。
import java.util.*;
import java.util.function.Function;
public class FunctionTest {
public static void main(String[] args) {
HashSet<String> hs = new HashSet<String>();
hs.add("ciao");
hs.add("hello");
hs.add("hallo");
hs.add("bonjour");
Function<Set, Map> setToMap = s2 -> (Map) new HashMap().put(s2,s2);
System.out.println(setToMap.apply(hs));
}
}
对于上面的例子,预期的结果应该是{B=bonjour, C=ciao, H=hello}
。