Advertisement
LucasSousa

Best12 (statistic provider)

Oct 21st, 2015
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.97 KB | None | 0 0
  1. package br.estatisticas;
  2.  
  3. import br.modelos.Solve;
  4. import java.util.ArrayList;
  5. import java.util.Collections;
  6.  
  7. /**
  8.  * Criado por Lucas Sousa em 21/10/2015.
  9.  */
  10. public class Best12 {
  11.  
  12.     private ArrayList<Solve> solves;
  13.     private ArrayList<Solve[]> averages;
  14.     private ArrayList<Long> averagesValues;
  15.  
  16.     public Best12(ArrayList<Solve> solves){
  17.         this.solves = solves;
  18.         averages = new ArrayList<>();
  19.         averagesValues = new ArrayList<>();
  20.         this.getAllAverages12();
  21.     }
  22.  
  23.     public long getBest12Value(){
  24.         for (int i = 0; i < averages.size(); i++){
  25.             Solve[] currentAvg12Solves = averages.get(i);
  26.             ArrayList<Long> currentAvg12LongTimes = new ArrayList<>();
  27.             for (Solve s : currentAvg12Solves){
  28.                 currentAvg12LongTimes.add(s.getTime());
  29.             }
  30.             averagesValues.add(getAvg(currentAvg12LongTimes));
  31.         }
  32.  
  33.         long best = averagesValues.get(0);
  34.         for (int i = 0; i < averagesValues.size(); i++){
  35.             if (averagesValues.get(i) < best){
  36.                 best = averagesValues.get(i);
  37.             }
  38.         }
  39.         return best;
  40.     }
  41.  
  42.     public ArrayList<String> getBest12Solves(){
  43.         ArrayList<ArrayList<String>> oi = new ArrayList<>();
  44.         for (int i = 0; i < averages.size(); i++){
  45.             ArrayList<String> aux = new ArrayList<>();
  46.             for (int j = 0; j < 12; j++){
  47.                 aux.add(averages.get(i)[j].toString());
  48.             }
  49.             oi.add(aux);
  50.         }
  51.         return oi.get(getIndexOfBestAvg());
  52.     }
  53.  
  54.     private int getIndexOfBestAvg(){
  55.         return averagesValues.indexOf(getBest12Value());
  56.     }
  57.  
  58.     private void getAllAverages12(){
  59.         if (solves != null){
  60.             if (solves.size() >= 12){
  61.                 ArrayList<Solve> solvesCopy = new ArrayList<>();
  62.                 for (Solve s : solves) {
  63.                     solvesCopy.add(s);
  64.                 }
  65.                 for (int i = solvesCopy.size(); i >= 12; i--) {
  66.                     ArrayList<Solve> aux = new ArrayList<>();
  67.                     for (int j = 0; j < 12; j++) {
  68.                         aux.add(solvesCopy.get(j));
  69.                     }
  70.                     Solve[] kk = new Solve[12];
  71.                     for (int j = 0; j < aux.size(); j++) {
  72.                         kk[j] = aux.get(j);
  73.                     }
  74.                     averages.add(kk);
  75.                     solvesCopy.remove(0);
  76.                 }
  77.             } else {
  78.                 averages.add(new Solve[]{new Solve(0, "null")});
  79.             }
  80.         }
  81.     }
  82.  
  83.     private long getAvg(ArrayList<Long> times){
  84.         if (solves.size() >= 12){
  85.             times.remove(Collections.max(times));
  86.             times.remove(Collections.min(times));
  87.             long somatorio = 0;
  88.             for (long i : times){
  89.                 somatorio += i;
  90.             }
  91.             return (somatorio / times.size());
  92.         }
  93.         return 0;
  94.     }
  95.  
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement