Guest User

JavaStreamMaxMinAverage

a guest
Dec 10th, 2018
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.62 KB | None | 0 0
  1. // Data Model
  2. public class DataModel {
  3.     private LocalDate date;
  4.     private double initial;
  5.     private double peak;
  6.     private double basal;
  7.     private double end;
  8.  
  9.     public DataModel(LocalDate date, double initial, double peak, double basal, double end) {
  10.         this.date = date;
  11.         this.initial = initial;
  12.         this.peak = peak;
  13.         this.basal = basal;
  14.         this.end = end;
  15.     }
  16.  
  17.     public LocalDate getDate() {
  18.         return date;
  19.     }
  20.  
  21.     public double getInitial() {
  22.         return initial;
  23.     }
  24.  
  25.     public double getPeak() {
  26.         return peak;
  27.     }
  28.  
  29.     public double getBasal() {
  30.         return basal;
  31.     }
  32.  
  33.     public double getEnd() {
  34.         return end;
  35.     }
  36. }
  37.  
  38. // Main Class
  39. public class main {
  40.     public static void main(String[] args) {
  41.         List<DataModel> list = getData();
  42.  
  43.         Map<String, TemporalAdjuster> ADJUSTERS = new HashMap<>();
  44.         ADJUSTERS.put("day", TemporalAdjusters.ofDateAdjuster(d -> d)); // identity
  45.         ADJUSTERS.put("week", TemporalAdjusters.previousOrSame(DayOfWeek.of(1)));
  46.         ADJUSTERS.put("month", TemporalAdjusters.firstDayOfMonth());
  47.         ADJUSTERS.put("year", TemporalAdjusters.firstDayOfYear());
  48.  
  49.         Map<Object, List<DataModel>> temp = list
  50.                 .stream()
  51.                 .collect(Collectors.groupingBy((DataModel data) -> data.getDate().with(ADJUSTERS.get("week"))));
  52.  
  53.         System.out.println(temp.size());
  54.  
  55.     }
  56.  
  57.     private static List<DataModel> getData(){
  58.         List<DataModel> list = new ArrayList<>();
  59.         list.add(new DataModel(LocalDate.of(2018,12,9),135,141,106,116));
  60.         list.add(new DataModel(LocalDate.of(2018,12,8),114,188,111,134));
  61.         list.add(new DataModel(LocalDate.of(2018,12,7),161,170,130,146));
  62.         list.add(new DataModel(LocalDate.of(2018,12,6),161,192,117,127));
  63.         list.add(new DataModel(LocalDate.of(2018,12,5),154,190,110,165));
  64.         list.add(new DataModel(LocalDate.of(2018,12,4),140,186,100,134));
  65.         list.add(new DataModel(LocalDate.of(2018,12,3),126,183,165,145));
  66.         list.add(new DataModel(LocalDate.of(2018,12,2),111,143,109,119));
  67.         list.add(new DataModel(LocalDate.of(2018,12,1),138,188,122,162));
  68.         list.add(new DataModel(LocalDate.of(2018,11,30),112,147,116,127));
  69.         list.add(new DataModel(LocalDate.of(2018,11,29),162,168,154,163));
  70.         list.add(new DataModel(LocalDate.of(2018,11,28),138,181,101,151));
  71.         list.add(new DataModel(LocalDate.of(2018,11,27),142,176,102,159));
  72.         list.add(new DataModel(LocalDate.of(2018,11,26),134,153,117,120));
  73.         return list;
  74.     }
  75. }
Add Comment
Please, Sign In to add comment