ArrayList<String> to ArrayList<Integer

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Ein Cast kann ich ohne weiteres realisieren, nur wenn ich auf ein Element danach zugreifen will, kommt eine ClassCastException.
Gibt es dennoch eine Möglichkeit ein String in eine ArrayList des Typs Integer zu wandeln?

Mein Konstrukt mit der ClassCastException:
Code:
String numbers = "1 2 3";
ArrayList<String> test = new ArrayList<String>();
test.add(number);

ArrayList<Integer> testInt = new ArrayList<Integer>();
Object myString;
myString = test;

testInt = (ArrayList<Integer>)myString;
int testOutput = testInt.get(0);

Danke
 

foxy

Aktives Mitglied
ich glaub so kannste das nicht machen ...
vorallem würde ich das in nen char array erst mal machen und dann in eine integer liste

und nun zu deinem code du lädst dein gesamtes string array in ein objekt rein .. somit hast du soetwas wie ein container gebaut ... nun (laut deinem code) castest du dein container in eine Arrayliste mit werten von integer ...

das casten klappt natürlich ... weil du ein Object castest ... aber der inhalt des Objektes ist dennoch String

an deiner stelle würde ich den string in ein char array laden und dann mit ner schleife die einzelnen integer werte in die arraylist<Integer> laden
 

Murray

Top Contributor
Ein Cast bringt da überhaupt nichts; beim Casten werden die Objekt nicht in irgendeiner Form verändert oder konvertiert, sondern lediglich als ein anderer Typ interpretiert - und das klappt eben nur dann, wenn sie auch wirklich diesen Typ haben.
Wenn du in einer Liste String-Objekte hast, dann muss jedes einzelne Element explizt per Integer.parseInt bzw. Integer.valueOf in ein int bzw. Integer umgewandelt werden.
In deinem Fall hast du ja aber noch nicht mal wirklich eine Liste von Strings; deine Liste enthält ja genau ein Element, in dem die Zahlen durch Leerzeichen getrennt hintereinander stehen. Diese String müsstest du zunächst mit String.split aufteilen.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben