我正在编写一个简单的表达式,其中我必须从数组中收集Map
索引String
列表。为此,我正在尝试使用
Collectors.toMap(keyMapper, valueMapper, mergeFunction).
其要点如下。
Map<String, List<Integer>> sortedStringToIndex = IntStream.range(0, strs.length)
.mapToObj(i -> new AbstractMap.SimpleEntry<String,Integer>(sortString(strs[i]),i))
.collect(Collectors.toMap((Map.Entry<String,Integer> pair) -> pair.getKey(),
(Map.Entry<String,Integer> pair) -> {
List<Integer> val = new ArrayList<>(){{add(pair.getValue());}};
return val;
}, (List<Integer> index1, List<Integer> index2) -> index1.addAll(index2)));
但它给了我以下错误。
方法 java.util.stream.Collectors.toMap(java.util.function.Function,java.util.function.Function,java.util.function.BinaryOperator) 不适用(推理变量 U 具有不兼容的边界相等约束:java.util.function.Function) util.List 下界:java.lang.Boolean,java.util.List)
有人可以解释编译器错误以及如何解决这个问题。提前致谢