0
Я играю с картами/потоками в Java 8, и я не вижу простого способа конвертировать следующий код Java 7. Кажется, я не могу получить доступ к методу внутри метода. Если я использую .map() в качестве промежуточного шага, я теряю доступ к внешней переменной («элемент»). Я что-то упускаю?Использование потоков/сбора для создания карты в Java 8
private void test(final Collection<SomeObject> items){
// Java 7
Map<SomeKey, List<SomeObject>> map = Maps.newHashMap();
for (SomeObject item : items){
SomeKey someKey = item.someMethod().getKey();
map.put(someKey,item);
}
// Java 8
Map<SomeKey, List<SomeObject>> map2 =
items.stream().collect(Collectors.groupingBy(item::someMethod::getKey));
}
Спасибо!
Я не вижу проблемный шага отображения. Просто замените ссылку на неправильный метод 'item :: someMethod :: getKey' с правильным выражением лямбда' item -> item.someMethod(). GetKey() ' – Holger
@Holger Я добавил ответ с вашим комментарием, но не стесняйтесь вернуться и добавить его, и я буду его продвигать! – phss