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

    scorrere elementi arraylist

    Salve, allora


    codice:
    ArrayList <Object[]> list = new ArrayList <Object[]> ();
    
    
    list.add(new Object[]{Nome[conta]});
    
         Object[] s=white.get(conta-1);
         
    System.out.println(""+s.toString());
    E mi stampa una stringa del tipo [Ljava.lang.Object;@8cb09b6


    Come mai?
    Il mio obiettivo e quello dopo di aver premuto il bottone oltre a inserire i nomi in arraylist. devo poter stampare ogni Nome presente della lista.Come posso fare?
    Ultima modifica di deleted_2024.08.22; 05-06-2014 a 00:01

  2. #2
    Quote Originariamente inviata da signfra Visualizza il messaggio
    Salve, allora


    codice:
    ArrayList <Object[]> list = new ArrayList <Object[]> ();
    
    
    list.add(new Object[]{Nome[conta]});
    
         Object[] s=white.get(conta-1);
         
    System.out.println(""+s.toString());
    E mi stampa una stringa del tipo [Ljava.lang.Object;@8cb09b6


    Come mai?
    Il mio obiettivo e quello dopo di aver premuto il bottone oltre a inserire i nomi in arraylist. devo poter stampare ogni Nome presente della lista.Come posso fare?
    Allora ho provato cosi ma non funziona stranamente

    codice:
     ArrayList <Object[]> list = new ArrayList <Object[]> ();
    
       
     Object [][]data2 = {
        {Nome[conta-1]}
                };
     
     
              white.add(new Object[]{Nome[conta-1]});
    
         
         data2=white.toArray(new Object[0][]);
         
    
         System.out.println("Nome "+data2.toString());

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da signfra Visualizza il messaggio
    E mi stampa una stringa del tipo [Ljava.lang.Object;@8cb09b6

    Come mai?
    Gli array non hanno il toString() ridefinito ... rimane quello "ereditato" da Object. Che è capace di fornire solo quella forma di informazione.

    O usi il toString() statico di java.utils.Arrays oppure vai a fare il toString() proprio sull'elemento/i contenuto/i nell'array.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Gli array non hanno il toString() ridefinito ... rimane quello "ereditato" da Object. Che è capace di fornire solo quella forma di informazione.

    O usi il toString() statico di java.utils.Arrays oppure vai a fare il toString() proprio sull'elemento/i contenuto/i nell'array.
    data2.toString(); non funziona già lo avevo pensato ma non parte

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    Dal codice che hai postato, data2 è un array bidimensionale (quindi, è un array di array), quindi ogni suo elemento è un array... quindi "soffre" dello stesso problema.
    Se vuoi "stampare" un array, devi scorrerlo e stamparne ogni singolo elemento.


    codice:
    // Array monodimensionale
    String[] mioArray = {"Ciao", "Pippo", "Pluto", ...};
    
    // Se lo voglio stampare, devo scorrerlo e stampare ogni suo singolo elemento
    for(int i=0; i<mioArray.length; i++) {
       System.out.println( mioArray[i] );
    }
    
    // Array bidimensionale
    String[][] arrayBid =
       {
          {"Ciao", "Pippo", "Pluto", ...},
          {"Ciao", "Pippo", "Pluto", ...},
          {"Ciao", "Pippo", "Pluto", ...},
          ...
       };
    
    // Se lo voglio stampare, devo scorrerlo e stampare ogni suo singolo elemento
    // ma siccome ogni suo singolo elemento è un array, dovrò fare la stessa
    // considerazione anche per l'elemento
    for(int i=0; i<arrayBid.length; i++) {
       String[] elemento = arrayBid[i];
       for(int j=0; j<elemento.length; j++) {
          System.out.println( elementi[j] );
       }
    }

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Se è solo un output di "debug", i toString()/deepToString() di Arrays vanno generalmente più che bene.

    codice:
    String[] arr = { "A", "B", "C" };
    System.out.println(Arrays.toString(arr));   // stampa [A, B, C]
    
    String[][] arr2 = { { "A", "B" }, { "C", "D" } };
    System.out.println(Arrays.deepToString(arr2));   // stampa [[A, B], [C, D]]
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Quote Originariamente inviata da LeleFT Visualizza il messaggio
    Dal codice che hai postato, data2 è un array bidimensionale (quindi, è un array di array), quindi ogni suo elemento è un array... quindi "soffre" dello stesso problema.
    Se vuoi "stampare" un array, devi scorrerlo e stamparne ogni singolo elemento.


    codice:
    // Array monodimensionale
    String[] mioArray = {"Ciao", "Pippo", "Pluto", ...};
    
    // Se lo voglio stampare, devo scorrerlo e stampare ogni suo singolo elemento
    for(int i=0; i<mioArray.length; i++) {
       System.out.println( mioArray[i] );
    }
    
    // Array bidimensionale
    String[][] arrayBid =
       {
          {"Ciao", "Pippo", "Pluto", ...},
          {"Ciao", "Pippo", "Pluto", ...},
          {"Ciao", "Pippo", "Pluto", ...},
          ...
       };
    
    // Se lo voglio stampare, devo scorrerlo e stampare ogni suo singolo elemento
    // ma siccome ogni suo singolo elemento è un array, dovrò fare la stessa
    // considerazione anche per l'elemento
    for(int i=0; i<arrayBid.length; i++) {
       String[] elemento = arrayBid[i];
       for(int j=0; j<elemento.length; j++) {
          System.out.println( elementi[j] );
       }
    }

    Ciao.

    codice:
    String [][]data2 = {
        {Nome[conta2-1]}
                };
     
     for(int i=0; i<data2.length; i++) {
       String[] elemento = data2[i];
       
       for(int j=0; j<elemento.length; j++) {
          System.out.println( elemento[j] );
       }
        }
    il problema e che mi stampa solo l'ultimo elemento dell'array poi io voglio stampare l'Arraylist e non la stringa bidimensionale
    Ultima modifica di deleted_2024.08.22; 05-06-2014 a 13:16

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da signfra Visualizza il messaggio
    codice:
    String [][]data2 = {
        {Nome[conta2-1]}
                };
    il problema e che mi stampa solo l'ultimo elemento dell'array
    Se il codice è esattamente quello che ho quotato qui .... io vedo solo 1 riga, con 1 colonna con 1 String.

    Quote Originariamente inviata da signfra Visualizza il messaggio
    poi io voglio stampare l'Arraylist e non la stringa bidimensionale
    E allora cosa centra l'array?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    Faccio notare che tu stai eseguendo questa istruzione:


    codice:
    System.out.println("Nome "+data2.toString());

    E, cioè, stai stampando "data2"... che è un Object[][]

    Nel codice che hai postato hai dichiarato ed istanziato un ArrayList<Object[]>, chiamato "lista", che non risulta tu stia usando da nessuna parte....

    E, comunque, poco cambia: un ArrayList è "concettualmente" come un array... che si autodimensiona.
    Se vuoi stamparne il contenuto, devi scorrerlo e stampare ciascun elemento... e anche qui, ciascun elemento di quell'ArrayList è un array, quindi vedi quanto detto prima.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.