Я писал одно простое выражение, в котором мне нужно собрать 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. Функция java.util.function.BinaryOperator) не применяется (переменная логического вывода U имеет несовместимые ограничения равенства границ: java.util.List нижние границы: java.lang.Boolean, java.util.List)
Может кто-нибудь объяснить, пожалуйста, ошибку компилятора и как это исправить. Заранее спасибо