Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- import java.util.function.BinaryOperator;
- import java.util.function.Function;
- import java.util.stream.Collectors;
- public class TestTry {
- public static void main(String[] args) {
- List<TempStat> stats = new ArrayList<TempStat>();
- stats.add(new TempStat("Minsk", 18, new Date(2020, 1, 20)));
- stats.add(new TempStat("Minsk", 19, new Date(2020, 1, 21)));
- stats.add(new TempStat("Minsk", 20, new Date(2020, 1, 22)));
- stats.add(new TempStat("New York", 8, new Date(2020, 1, 20)));
- stats.add(new TempStat("New York", 9, new Date(2020, 1, 21)));
- stats.add(new TempStat("New York", 10, new Date(2020, 1, 22)));
- stats.add(new TempStat("London", 20, new Date(2020, 1, 20)));
- stats.add(new TempStat("London", 19, new Date(2020, 1, 21)));
- stats.add(new TempStat("London", 18, new Date(2020, 1, 22)));
- Collection<TempStat> result = stats.stream().collect(Collectors.toMap(
- TempStat::getCity,
- Function.identity(),
- BinaryOperator.maxBy(Comparator.comparing(TempStat::getDate))))
- .values();
- result.stream()
- .forEach(System.out::println);
- }
- static class TempStat {
- String city;
- int value;
- Date date;
- public TempStat(String city, int value, Date date) {
- this.city = city;
- this.value = value;
- this.date = date;
- }
- public String getCity() {
- return city;
- }
- public Date getDate() {
- return date;
- }
- @Override
- public String toString() {
- return "TempStat{" +
- "city='" + city + '\'' +
- ", value=" + value +
- ", date=" + date +
- '}';
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement