作者:夕阳隐日 | 来源:互联网 | 2022-11-29 16:26
我想一个简单的转换List
为Map
使用Java 8个流API,并得到了以下编译时错误:
The method toMap(Function super T,? extends K>, Function super T,?
extends U>) in the type Collectors is not applicable for the arguments
(Function, boolean)
我的代码:
ArrayList m_list = new ArrayList();
m_list.add(1);
m_list.add(2);
m_list.add(3);
m_list.add(4);
Map m_map = m_list.stream().collect(
Collectors.toMap(Function.identity(), true));
我也尝试了下面的第二种方法,但得到了同样的错误.
Map m_map = m_list.stream().collect(
Collectors.toMap(Integer::intValue, true));
使用Java 8流API执行此操作的正确方法是什么?
1> Eran..:
您正在传递boolean
值映射器.你应该通过一个Function
.
它应该是:
Map m_map = m_list.stream().collect(
Collectors.toMap(Function.identity(), e -> true));