Чтобы проиллюстрировать, что говорят другие ответы:
$ foo="Hello, World"
$ echo $foo
Hello, World
$ bar="Goodbye"
$ export foo
$ bash
bash-3.2$ echo $foo
Hello, World
bash-3.2$ echo $bar
bash-3.2$
College.Dept::getName
является Function<College.Dept, String>
. Он не принимает College
в качестве ввода.
Используйте лямбду, чтобы построить Function<College, String>
:
groupingBy(c -> c.getDept().getName())
Вы можете попробовать это:
Map<String, List<College>> map =
list.stream()
.collect(groupingBy(college -> college.getDept().getDeptName()));
Обновление:
Эти два наблюдения могут быть не по теме, хотя я считаю, что их стоит упомянуть: ]
Идентифицированно ли заглавная буква идентификатора свойства класса CollegeName
? Я настоятельно рекомендую использовать один и тот же стиль кодирования во всем коде.
Похоже, вам нужно переосмыслить иерархию данных (даже если это просто учебная задача). Соотношение между College
и Dept
должно быть не one-to-one
, а one-to-many
.