Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package br.estatisticas;
- import br.modelos.Solve;
- import java.util.ArrayList;
- import java.util.Collections;
- /**
- * Criado por Lucas Sousa em 21/10/2015.
- */
- public class Best12 {
- private ArrayList<Solve> solves;
- private ArrayList<Solve[]> averages;
- private ArrayList<Long> averagesValues;
- public Best12(ArrayList<Solve> solves){
- this.solves = solves;
- averages = new ArrayList<>();
- averagesValues = new ArrayList<>();
- this.getAllAverages12();
- }
- public long getBest12Value(){
- for (int i = 0; i < averages.size(); i++){
- Solve[] currentAvg12Solves = averages.get(i);
- ArrayList<Long> currentAvg12LongTimes = new ArrayList<>();
- for (Solve s : currentAvg12Solves){
- currentAvg12LongTimes.add(s.getTime());
- }
- averagesValues.add(getAvg(currentAvg12LongTimes));
- }
- long best = averagesValues.get(0);
- for (int i = 0; i < averagesValues.size(); i++){
- if (averagesValues.get(i) < best){
- best = averagesValues.get(i);
- }
- }
- return best;
- }
- public ArrayList<String> getBest12Solves(){
- ArrayList<ArrayList<String>> oi = new ArrayList<>();
- for (int i = 0; i < averages.size(); i++){
- ArrayList<String> aux = new ArrayList<>();
- for (int j = 0; j < 12; j++){
- aux.add(averages.get(i)[j].toString());
- }
- oi.add(aux);
- }
- return oi.get(getIndexOfBestAvg());
- }
- private int getIndexOfBestAvg(){
- return averagesValues.indexOf(getBest12Value());
- }
- private void getAllAverages12(){
- if (solves != null){
- if (solves.size() >= 12){
- ArrayList<Solve> solvesCopy = new ArrayList<>();
- for (Solve s : solves) {
- solvesCopy.add(s);
- }
- for (int i = solvesCopy.size(); i >= 12; i--) {
- ArrayList<Solve> aux = new ArrayList<>();
- for (int j = 0; j < 12; j++) {
- aux.add(solvesCopy.get(j));
- }
- Solve[] kk = new Solve[12];
- for (int j = 0; j < aux.size(); j++) {
- kk[j] = aux.get(j);
- }
- averages.add(kk);
- solvesCopy.remove(0);
- }
- } else {
- averages.add(new Solve[]{new Solve(0, "null")});
- }
- }
- }
- private long getAvg(ArrayList<Long> times){
- if (solves.size() >= 12){
- times.remove(Collections.max(times));
- times.remove(Collections.min(times));
- long somatorio = 0;
- for (long i : times){
- somatorio += i;
- }
- return (somatorio / times.size());
- }
- return 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement