Pass data contained in Arraylist to attributes of an object

Asked

Viewed 166 times

-1

Through Scanner, I read a file . htm and pass the data contained in it to a String Arraylist. I need to assign this data from Arraylist to "game" objects. The Game class already exists, with all attributes, getters and setters..

The list goes like this:

1 (primeiro atributo do primeiro objeto jogo)
11/03/1996
04
05
30
33
41
52
0,00
0
0,00
17
39.158,92
2016
330,21
1.714.650,23
0,00
0,00
2 (primeiro atributo do segundo objeto jogo)
18/03/1996
...

These dice are already in the order in which they will be assigned, therefore, from the 1st dice (Arraylist index 0) to the 18th dice (Arraylist index 17) is a single game. From the 19th to the 36th another game...

My question is simple: How best to assign this data contained in Arraylist to attributes of Game Class objects?

Edit:

I got it this way:

private static void setJogos(List<String> listaSorteios) {

    int linha = 0;
    jogo = new Jogo();
    listaJogos.add(jogo);

    for (int u = 0; u < listaSorteios.size(); u++) {

        if (linha > 17) {
            linha = 0;
            jogo = new Jogo();
            listaJogos.add(jogo);
        }

        switch (linha) {
            case 0:
                jogo.setConcurso(Integer.parseInt(listaSorteios.get(u)));
                break;
            case 1:
                jogo.setDataSorteio(listaSorteios.get(u));
                break;
            case 2:
                jogo.setPrimeiraDezena(Integer.parseInt(listaSorteios.get(u)));
                break;
            case 3:
                jogo.setSegundaDezena(Integer.parseInt(listaSorteios.get(u)));
                break;
            case 4:
                jogo.setTerceiraDezena(Integer.parseInt(listaSorteios.get(u)));
                break;
            case 5:
                jogo.setQuartaDezena(Integer.parseInt(listaSorteios.get(u)));
                break;
            case 6:
                jogo.setQuintaDezena(Integer.parseInt(listaSorteios.get(u)));
                break;
            case 7:
                jogo.setSextaDezena(Integer.parseInt(listaSorteios.get(u)));
                break;
            case 8:
                break;
            case 9:
                jogo.setNumGanhadoresSena(Integer.parseInt(listaSorteios.get(u)));
                break;
            case 10:
                jogo.setRateioSena((listaSorteios.get(u)));
                break;
            case 11:
                jogo.setNumGanhadoresQuina(Integer.parseInt(listaSorteios.get(u)));
                break;
            case 12:
                jogo.setRateioQuina((listaSorteios.get(u)));
                break;
            case 13:
                jogo.setNumGanhadoresQuadra(Integer.parseInt(listaSorteios.get(u)));
                break;
            case 14:
                jogo.setRateioQuadra((listaSorteios.get(u)));
                break;
            case 15:
                jogo.setEstimativaPremio((listaSorteios.get(u)));
                break;
            case 16:
                break;
            case 17:
                break;                
        }
        linha++;
    }
}

Someone suggests a better way?

  • would like to add an Addendum on Arraylist: here. I believe I can help you understand.

1 answer

1

private static void setJogos(List listaSorteios) {

Jogo jogo; int contador = 0; for (int u = 0; u < (listaSorteios.size()/18); u++) { contador = contador+18; jogo = new jogo(); jogo.setConcurso(Integer.parseInt(listaSorteios.get(contador-18))); jogo.setDataSorteio(listaSorteios.get(contador-16)); jogo.setPrimeiraDezena(Integer.parseInt(listaSorteios.get(contador-15))); ....... jogo.setPrimeiraDezena(Integer.parseInt(listaSorteios.get(contador-1))); listadJogos.add(jogo); jogo = null; }
  • Not made clear, this list has 33.354 thousand items and are added 2 items each week. It is the games of Mega-Sena.. Your solution would be unworkable in this case. Thank you for your attention!

  • I do not see a way that it is not necessary to go through the whole list, in my view, what can be done is to give more performance when searching for this data. In case I advise to work with lists of the type Set who perform better than List. I also advise you to save the last position of the array, so you don’t have to go through the entire array again when adding the two items per week.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.