Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    33

    Array statico in ArrayList()

    Salve a tutti.

    Volevo sapere se c'è un modo di farsi restituire il valore di un numero contenuto in un array statico a sua volta memorizzato in una matrice di ArrayList().

    Mi spiego meglio. Ammettiamo che io abbia questa matrice di ArrayList():

    codice:
    ArrayList<ArrayList<Object>> matrice = new ArrayList<ArrayList<Object>>();
    matrice.add(new ArrayList<Object>());
    Ora, inizializzando ed inserendo (ammettiamo di essere nella prima riga e dunque "0") nella matrice un vettore statico:

    codice:
    int[] staticArray = new int[2];
    staticArray[0] = 100;
    staticArray[1] = 200;
    
    matrice.get(0).add(staticArray);
    come posso farmi restituire i valori 100 e 200?

    Per esempio, se voglio stamparli (ammettendo d'aver memorizzato staticArray nella seconda colonna e dunque "1"):

    codice:
    System.out.print(matrice.get(0).get(1)..... e poi????? );
    Grazie anticipatamente.

    Ciao,
    Francesco

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: Array statico in ArrayList()

    Originariamente inviato da pumax84
    come posso farmi restituire i valori 100 e 200?

    Per esempio, se voglio stamparli (ammettendo d'aver memorizzato staticArray nella seconda colonna e dunque "1"):
    int[] a = (int[]) matrice.get(0).get(1);

    Quindi poi semplicemente a[0] e a[1]
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    33

    Re: Re: Array statico in ArrayList()

    Originariamente inviato da andbin
    int[] a = (int[]) matrice.get(0).get(1);

    Quindi poi semplicemente a[0] e a[1]
    Grazie mille per la risposta. Una valida alternativa, però a me interessava la restituzione (o stampa) dell'elemento senza allocare un ulteriore vettore. Ho appreso che bisognava mettere il cast obbligato e le parentesi quadre con l'indice dell'array statico dato che quei get restituivano proprio l'array:
    codice:
    System.out.println(((int[])matrice.get(0).get(1))[0]);
    Grazie comunque!

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: Re: Re: Array statico in ArrayList()

    Originariamente inviato da pumax84
    senza allocare un ulteriore vettore.
    Ma non ho istanziato alcun nuovo array! ... ho solo definito una variabile locale 'a' di tipo int[] a cui assegno il reference all'array già esistente (e il cui reference è contenuto nell'ArrayList). Non è una istanziazione di un nuovo array!!! Rivedi bene gli array in Java.

    Originariamente inviato da pumax84
    Ho appreso che bisognava mettere il cast obbligato
    Il cast è necessario perché l'ArrayList più interno è parametrizzato con Object. Se tu sai che l'oggetto realmente è un int[] allora ovviamente devi fare il cast a int[].

    Ora ... non so dire (e non l'hai specificato) perché l'hai parametrizzato con Object. Se è perché quell'ArrayList deve poter contenere oggetti di tipo eterogeneo, allora ok, mi sta bene.

    Ma se tu sai che quell'ArrayList deve contenere solo array int[], allora potresti parametrizzarlo in modo più specifico:

    ArrayList<ArrayList<int[]>> matrice = ......

    e poi più semplicemente:

    matrice.get(0).get(1)[0]

    Ma questo devi saperlo tu, se quell'ArrayList deve contenere solo oggetti di tipo int[] o di diverso tipo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    33

    Re: Re: Re: Re: Array statico in ArrayList()

    Originariamente inviato da andbin
    Ora ... non so dire (e non l'hai specificato) perché l'hai parametrizzato con Object. Se è perché quell'ArrayList deve poter contenere oggetti di tipo eterogeneo, allora ok, mi sta bene.
    Contiene un elemento array di tipo int[], alcune stringhe e un elemento di tipo int, ecco perchè l'ho parametrizzato con Object!

    Grazie per la spiegazione!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.