Advertisement
Guest User

Untitled

a guest
Mar 7th, 2017
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.55 KB | None | 0 0
  1. public List<Stock> average(Collection<Stock> stocks) {
  2.         // TODO: use functional programming to count average stock price
  3.         // HINT: use collect Collectors.groupingBy
  4.         return stocks.stream()
  5.         .collect(Collectors.groupingBy(Stock::getCode))
  6.         .entrySet().stream()
  7.         .map(entry -> new ImmutablePair<String, Float>(entry.getKey(),
  8.                 entry.getValue().stream()
  9.                 .map(Stock::getValue)
  10.                 .reduce((v1, v2) -> v1 + v2)
  11.                 .orElse(0f) / entry.getValue().size()
  12.         ))
  13.         .map(pair -> new Stock(pair.left, pair.right))
  14.         .collect(Collectors.toList());
  15.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement