|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
[JAVA] ArrayList di int?
Ho scritto questo codice:
Codice:
//Costruisce un array di interi della stessa lunghezza della lista, contenente i campi data della //lista. Ogni intero è il campo data contenuto nella posizione della lista corrispondente //all'indice dell'array: 0 indica la prima posizione (quella di testa), 1 la seconda e così via, //fino alla lunghezza della lista meno una unità. public int[] toArray(){ ArrayList<Integer> array=new ArrayList<Integer>(); ListElem iterator=first; while(iterator!=null){ array.add(iterator.getDato()); iterator=iterator.getNext(); } Integer vett[]={}; vett=(Integer[])array.toArray(vett); int nuovoVett[]=new int[vett.length]; for(int i=0;i<vett.length;i++) nuovoVett[i]=vett[i].intValue(); return nuovoVett; } Soluzioni? Grazie, ciao! |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
|
Ecco uno spunto, ma non ho il tempo di testarlo:
Codice:
//Costruisce un array di interi della stessa lunghezza della lista, contenente i campi data della //lista. public int[] toArray() { ListElem iterator = first; int n = 0; while(iterator != null) { iterator = iterator.getNext(); n++; } int nuovoVett[] = new int[n]; iterator = first; for (int i = 0; i < n; i++) { nuovoVett[i] = iterator.getDato(); iterator = iterator.getNext(); } return nuovoVett; }
__________________
Angus the Hunter @ Realm of magic | Angus Young @ Batracer °SetiEmperor°| Ninja Technologies { qualunque cosa sia, è veloce e fa male (cit.) } |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
Innanzitutto ti ringrazio, pero' quello che volevo fare io era usare sempre l'ArrayList, magari anche dichiarandolo in un altro modo. La tua soluzione e' senza dubbio funzionante ma non e' quello che mi sarebbe piaciuto fare, la soluzione ideale sarebbe una cosa tipo:
Codice:
public int[] toArray(){ ArrayList<int> array=new ArrayList<int>(); ListElem iterator=first; while(iterator!=null){ array.add(iterator.getDato()); iterator=iterator.getNext(); } int vett[]={}; return (int[])array.toArray(vett); } In pratica quello che mi serve non e' tanto la soluzione dell'esercizio, vorrei solo sapere qualcosa di piu' sull'uso di ArrayList |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
|
Quote:
Un consiglio tra le righe? Fornisci un metodo di ListElem, anche solo privato, che tenga traccia della dimensione della lista dinamica. Salveresti capra e cavoli... ma se ListElem non può essere estesa o modificata allora fa come se non ti avessi detto niente ![]()
__________________
Angus the Hunter @ Realm of magic | Angus Young @ Batracer °SetiEmperor°| Ninja Technologies { qualunque cosa sia, è veloce e fa male (cit.) } |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
Purtroppo non posso aggiungere nulla, a parte i metodi richiesti.
A sto punto sì, la tua è la soluzione migliore. Peccato che non esista nulla di simile ad ArrayList per i tipi primitivi.. Grazie ancora. |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
ArrayList<Integer> ?
Ciao
__________________
GPU Compiler Engineer |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
Qual'è la necessità di usare int[] anzichè Integer[]? Con l'autoboxing usare un Integer[] e un int[] ha poca differenza
__________________
GPU Compiler Engineer |
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
Quote:
Codice:
public int[] toArray(){ ArrayList<Integer> array=new ArrayList<Integer>(); ListElem iterator=first; while(iterator!=null){ array.add(iterator.getDato()); iterator=iterator.getNext(); } return (Integer[])array.toArray(new Integer[])); } |
|
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
__________________
![]() |
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
Quindi mi basta cambiare in Integer[] il tipo di ritorno del metodo e sono a posto senza modificare nient'altro nelle chiamate del metodo? Credo di poterlo fare.. domani in laboratorio dove ho tutto il codice provo. Grazie!
|
![]() |
![]() |
![]() |
#12 | ||
Senior Member
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
|
Quote:
Quote:
Codice:
int[][] matrix = ... matrix[0] = wingmanList.toArray(); // il tuo metodo restituisce Integer[]!! ![]()
__________________
Angus the Hunter @ Realm of magic | Angus Young @ Batracer °SetiEmperor°| Ninja Technologies { qualunque cosa sia, è veloce e fa male (cit.) } |
||
![]() |
![]() |
![]() |
#13 | ||
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
Quote:
Quote:
![]() Mi sa che devo lasciar perdere l'ArrayList vero? ![]() |
||
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:28.