Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [Java] Aiuto su ArrayList doppio

    ho un metodo che i restituisce un ArrayList<ArrayList<String>>.
    dovrei scandagliarlo per righe e colonne e avevo pensato di farne il cast in un String[][].
    codice:
    String[][] strValue = (String[][]) list.toArray();
    ovviamente mi da un errore di cast.
    posso scandagliare ArrayList<ArrayList<String>> per righe e colonne come in un String[][]?
    o in caso come posso eseguire il cast?

  2. #2
    Utente di HTML.it L'avatar di Pierock
    Registrato dal
    Dec 2008
    Messaggi
    102
    non te lo risolvi con un cast...
    dovresti creare un metodo!
    con un iteratore che scandisce il primo ArrayList ... ed un secondo che ti scandisce quello più interno.

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Con un metodo di poche righe:
    codice:
    public static String[][] toArray(ArrayList<ArrayList<String>> list) {
        String[][] arr = new String[list.size()][];
        for (int i = 0; i < list.size(); i++) {
            ArrayList<String> l = list.get(i);
            arr[i] = l == null ? null : l.toArray(new String[l.size()]);
        }
        return arr;
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    avrei trovato anche un altro modo:
    codice:
    ArrayList<ArrayList<String>> list = db.getBooksXls();
            for (int i = 1; i < list.size(); i++) {
                for (int j = 0; j < (list.get(i)).size(); j++) {
                    // PRENDO I VALORI E CI FACCIO QUALCOSA => list.get(i)).get(j)
                }
            }
    grazie per le risposte!!

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da fermat
    codice:
                    // PRENDO I VALORI E CI FACCIO QUALCOSA => list.get(i)).get(j)
    Se ti va bene prendere così il valore "al volo" (senza crearti un'altra struttura es. String[][] come dicevi) ovviamente ok. Non è obbligatorio crearsi un String[][] ... dipende da cosa devi fare di preciso.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    nel caso specifico dovevo riempire un foglio excel.
    prendo i valori e li metto nelle celle.
    così funziona.
    però il tuo consigilio lo terrò a mente grazie!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.