Skip to content

Instantly share code, notes, and snippets.

@smallufo
Created December 31, 2017 16:11
Show Gist options
  • Save smallufo/cabba463a5a7a0d4b5e227f70ce7488b to your computer and use it in GitHub Desktop.
Save smallufo/cabba463a5a7a0d4b5e227f70ce7488b to your computer and use it in GitHub Desktop.
public interface IBookService {
List<Tuple2<LocalDate , Book>> findBooks(User user , LocalDate from , LocalDate to);
default List<Tuple3<LocalDate , User , Book>> findUserBooks(List<User> users , LocalDate from , LocalDate to) {
Map<LocalDate , Tuple2<User , Book>> map = users.stream()
.flatMap(user -> {
List<Tuple2<LocalDate , Book>> list = findBooks(user , from , to);
return list.stream().map(t -> Tuple.tuple(t.v1 , user , t.v2));
}
).collect(Collectors.toMap(Tuple3::v1, t -> Tuple.tuple(t.v2() , t.v3()) , (v1, v2) -> v1 , TreeMap::new));
return map.entrySet().stream()
.map(entry -> Tuple.tuple(entry.getKey() , entry.getValue().v1 , entry.getValue().v2))
.collect(Collectors.toList());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment