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 20/10/2015.
- */
- public class Best5 {
- private ArrayList<Solve> solves;
- private ArrayList<Solve[]> averages;
- private ArrayList<Long> averagesValues;
- public Best5(ArrayList<Solve> solves){
- this.solves = solves;
- averages = new ArrayList<>();
- averagesValues = new ArrayList<>();
- getAllAverages5();
- }
- public long getBest5Value(){
- for (int i = 0; i < averages.size(); i++){
- Solve[] currentAvg5Solves = averages.get(i);
- ArrayList<Long> currentAvg5LongTimees = new ArrayList<>();
- for (Solve s : currentAvg5Solves){
- currentAvg5LongTimees.add(s.getTime());
- }
- averagesValues.add(getAvg(currentAvg5LongTimees));
- }
- 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> getBest5Solves(){
- ArrayList<ArrayList<String>> oi = new ArrayList<>();
- for (int i = 0; i < averages.size(); i++){
- ArrayList<String> aux = new ArrayList<>();
- for (int j = 0; j < 5; j++){
- aux.add(averages.get(i)[j].toString());
- }
- oi.add(aux);
- }
- return oi.get(getIndexOfBestAvg());
- }
- private int getIndexOfBestAvg(){
- return averagesValues.indexOf(getBest5Value());
- }
- private void getAllAverages5(){
- if (solves != null) {
- if (solves.size() >= 5) {
- ArrayList<Solve> solvesCopy = new ArrayList<>();
- for (Solve s : solves) {
- solvesCopy.add(s);
- }
- for (int i = solvesCopy.size(); i >= 5; i--) {
- ArrayList<Solve> aux = new ArrayList<>();
- for (int j = 0; j < 5; j++) {
- aux.add(solvesCopy.get(j));
- }
- Solve[] kk = new Solve[5];
- 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() >= 5){
- 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