|
|
|
![]() |
|
Strumenti |
![]() |
#21 |
Member
Iscritto dal: Oct 2008
Messaggi: 97
|
credo adesso funzioni tutto. un'unica cosa, cercavo di far stampare i risultati per vedere cosa usciva fuori, e se do il comando
Codice:
System.out.println("intArray è :" + intArray); Codice:
System.out.println ("la lista è : " + "elemento " + i + " " + lista.get(i)); intArray è :[I@41d5550d e la lista è : elemento 0 [I@3d4b7453 la lista è : elemento 1 [I@24c21495 la lista è : elemento 2 [I@41d5550d mi sa che devo lavorare sull'uscita dell'output, per ottenere una roba del tipo: [[0 1 2 3] [0 2 4 6 8] [0 3 4 5 8 9 11 12]] |
![]() |
![]() |
![]() |
#22 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2776
|
Potresti usare il metodo toString di Arrays:
http://download.oracle.com/javase/6/...28int[]%29 Codice:
for(int[] intArray : lista) Arrays.toString(intArray); |
![]() |
![]() |
![]() |
#23 |
Junior Member
Iscritto dal: Aug 2011
Messaggi: 7
|
Avendo qualche nozione base di C e cercando ora di capire qualcosa di Java per me è naturale proporti il metodo printf:
System.out.printf(); Ciao! NN |
![]() |
![]() |
![]() |
#24 | |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2776
|
Quote:
Codice:
for(int[] intArray : lista) System.out.println(Arrays.toString(intArray)); |
|
![]() |
![]() |
![]() |
#25 |
Member
Iscritto dal: Oct 2008
Messaggi: 97
|
mi da errore <Duplicate local variable intArray> nel momento in cui riscrivo intArray, mi dice di rinominarlo...
Codice:
for(int[] intArray : lista) |
![]() |
![]() |
![]() |
#26 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2776
|
E' una sintassi che puoi utilizzare quando la collezione che stai iterando implementa l'interfaccia Iterable (e ArrayList l'implementa). Puoi usarla anche per gli array.
Riguardo l'errore: puoi usare un altro nome, anche se secondo me hai dichiarato il primo intArray in un blocco più esterno del necessario. |
![]() |
![]() |
![]() |
#27 |
Member
Iscritto dal: Oct 2008
Messaggi: 97
|
ho risolto chiamandolo semplicemente intArray2, avevo intuito il funzionamento.
adesso da dei risultati un po' incasinati, ma suppongo debba lavorarci sopra. per esempio nei risultati finali l'ultima componente resta uno 0, invece del numero che dovrebbe essere.... ![]() |
![]() |
![]() |
![]() |
#28 |
Member
Iscritto dal: Oct 2008
Messaggi: 97
|
problemino... con il codice:
Codice:
for(int[] intArray2 : lista) System.out.println(Arrays.toString(intArray)); ho fatto il debug passo passo e ho visto che nella locazione di memoria dov'è l'ArrayList ci sono tutti i diversi elementi presenti, ma stampa sempre e solo l'ultimo, ripetuto come detto. in cosa sbaglio? forse perche prende intArray di "Arrays.toString(intArray)", che effettivamente contiene l'ultimo array inserito nell'ArrayList? Ultima modifica di FrankieB76 : 26-08-2011 alle 09:10. |
![]() |
![]() |
![]() |
#29 |
Member
Iscritto dal: Oct 2008
Messaggi: 97
|
ok, dovrei aver risolto con:
Codice:
a = lista.size(); for (i=0;i<a;i++) { int [] app = lista.get(i); for (j=0;j<app.length;j++) { System.out.println(app[j]); } } |
![]() |
![]() |
![]() |
#30 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2776
|
Il problema era che ciclavi su lista usando la variabile intArray2 ma poi stampavi intArray (senza 2).
Comunque ribadisco che secondo me hai dichiarato intArray in un blocco più esterno del necessario. |
![]() |
![]() |
![]() |
#31 |
Member
Iscritto dal: Oct 2008
Messaggi: 97
|
hmmm... no, veramente era dichiarato nello stesso metodo... boh?
|
![]() |
![]() |
![]() |
#32 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2776
|
Puoi postare il codice completo così ti spiego quello che intendo (sempre se è come immaginavo).
|
![]() |
![]() |
![]() |
#33 |
Member
Iscritto dal: Oct 2008
Messaggi: 97
|
certo, ecco il contenuto del ciclo while di lettura del file:
Codice:
while(line != null) { System.out.println(); System.out.println("ciclo while numero " + contawhile); contawhile++; if(line.trim().equals("")) { line = bufRead.readLine(); continue; } //fine check controllo linee vuote String[] str_list = line.trim().split("\\s"); int numElements = str_list.length; //lunghezza linea System.out.println("numElements: "+ numElements); int[] intArray = new int[numElements]; //creo l'array che mi servirà dopo int i=0; //contatore for (i=0; i<numElements; i++) { System.out.println(); System.out.println("valore di i: " + i); intArray[i] = Integer.parseInt(str_list[i]); } //fine for lista.add(intArray); System.out.println(); System.out.println("questo è un cammino: " + line + "\n"); i=0; int j=0; a = lista.size(); System.out.println("la size dell'ArrayList è :" + a); System.out.println ("la lista è : "); for (i=0;i<a;i++) { int [] app = lista.get(i); System.out.println("elemento " + i + ":"); for (j=0;j<app.length;j++) { System.out.println(app[j]); } } line = bufRead.readLine(); //passa alla linea successiva } |
![]() |
![]() |
![]() |
#34 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2776
|
Ok, non è come immaginavo
![]() Pensavo stampassi lista alla fine degli inserimenti, invece stampi anche i contenuti parziali. Comunque ti consiglio di suddividere il codice in più metodi, è più semplice leggerlo, gestirlo ed è più riutilizzabile. |
![]() |
![]() |
![]() |
#35 |
Member
Iscritto dal: Oct 2008
Messaggi: 97
|
si si certo, per adesso verifico il funzionamento (non ho mica finito!!!) poi vedo come metterlo in modo decente!
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:31.