Ciclo for em ArrayList- Erro

LouisLit

Power Member
Boas pessoal,

Estou a tentar gravar 10 registos num ArrayList e aparentemente não está a gravar . Podem me ajudar por favor?

Código:
package domini.Ranking;

import java.util.ArrayList;

import domini.Tuple.*;

public class Ranking {
  
    ArrayList<Tuple> ranking ;
  
    public void insert(Tuple t) {
      
        ranking = new ArrayList<Tuple>(10);
      
                if(ranking.size()<10) {
                ranking.add(t);
            }
            else {
            int i =0;
            while(i < ranking.size()) {
                    if(ranking.get(i).getValue() < t.getValue() ) {
                        if(ranking.get(i).getPlayerName().equals(t.getPlayerName())) {
                            ranking.add(t);
                            i++;
                            }
                    else{
                            System.out.println("Not inserted.");
                        }
            }
        }
            }
                }
    public ArrayList<Tuple> getRanking(){
        return ranking;
                }
    }

Código:
package domini.Ranking;



import java.util.Scanner;

import domini.Tuple.*;


public class DriverRanking {

  
    public static void main (String[] args) {
        Boolean exit = false;
        Scanner sc= new Scanner(System.in);
        Tuple t = null;
        Ranking r =null;
        while (!exit) {
          
            System.out.println("Input number for test");
            System.out.println("1. Insert ranking");
            System.out.println("2. Get Ranking");
            System.out.println("3. Exit Driver");
            int option = sc.nextInt();
            sc.nextLine();
            switch(option) {
            case 1:
                System.out.println("Insert a name");
                String A = sc.nextLine();
                System.out.println("Insert a record");
                Float B = sc.nextFloat();
                t = new Tuple(A,B);  
                r = new Ranking();
                System.out.println(A + " you scored " + B);
                r.insert(t);              
              
                break;
            case 2:
              
                for(int i=0;i<r.getRanking().size();i++) {
                  
                            System.out.println(r.getRanking().get(i));
                            System.out.println(r.getRanking().size());
                    }
                  
              
      
              
                break;
            case 3:
                exit = true;
                sc.close();
                break;
            default:
                System.out.println("Option not valid, please input a number from 1 to 3");
                break;
              
            }
        }
    }

Output linha cmd:

Código:
Input number for test
1. Insert ranking
2. Get Ranking
3. Exit Driver
1
Insert a name
Luis
Insert a record
2
Luis you scored 2.0
Input number for test
1. Insert ranking
2. Get Ranking
3. Exit Driver
1
Insert a name
Pedro
Insert a record
12
Pedro you scored 12.0
Input number for test
1. Insert ranking
2. Get Ranking
3. Exit Driver
2
domini.Tuple.Tuple@4554617c
1
Input number for test
1. Insert ranking
2. Get Ranking
3. Exit Driver

Estou a imprimir o tamanho do array e fica sempre igual a 1, ou seja , não adiciona...
 
Back
Topo