Map> result = employees.stream() .collect(Collectors.groupingBy( x -> String.join(".", x.getPraefix(), x.getMiddleFix(), x.getPostfix()), Collectors.mapping(Employee::getName, Collectors.toList())