wie casten ?

  • Themenstarter Themenstarter mh...
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
M

mh...

Gast
Code:
int [] ar;
ArrayList<Integer> al = new ArrayList<Integer>(10);

ar = (int []) al.toArray(int[]); //wie macht man das ?
 
Code:
int [] ar;
ArrayList<Integer> al = new ArrayList<Integer>(10);
ar = al.toArray(new int[10]);

Du kannst im Argument auch einfach "new int[0]", falls Du erst zur Laufzeit weißt, wieviele Einträge die Liste tatsächlich enthält.

Hoffe, ich konnte helfen.
 
die version hatte ich auch shcon, sagt eclipse aber, iss nicht 🙁
 
Code:
int [] ar;
ArrayList<Integer> al = new ArrayList<Integer>(10);
ar = al.toArray(new Integer[10]);

(P.S.: Sorry für das verwirrende Edit - warst zu schnell 🙂)
 
So geht es zwar, sieht aber nicht so schön aus ...

Code:
int [] ar;
ArrayList<Integer> al = new ArrayList<Integer>(10);
Integer[] temp = al.toArray(new Integer[0]);
ar = new int[temp.length];
for (int i = 0; i < temp.length; i++) 
	ar[i] = temp[i].intValue();

mag mal jemand etwas dazu sagen, ob ich heute morgen ein Brett vor dem Schädel habe, bitte? ???:L
 
Ein int ist nunmal ein primitiver Datentyp, und Integer nicht... da nützt alles Casten nichts.

Aber man muss nicht extra über einen Integer-Array gehen :wink:

Code:
List<Integer> list = ...
int[] array = new int[ list.size() ];
int i = 0;
for( Integer in : list ){
  array[i++] = in.intValue();
}
 
Ja stimmt, dass temporäre Integer-Array war eher als Zugeständnis an die toArray()-Methode dringeblieben. Ist aber bei längerem Nachdenken schon eigenartig, dass es keine Utilityklassen gibt, die Integerarrays nach int-Arrays (und das selbe für die anderen primitiven Datentypen) konvertiert. Oder vielleicht kenne ich sie nur nicht. :?:
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben