Hi Forum
Ich habe eine HashMap, der ich auch angebe welche Objekte darin vorkommen können. Als Key kann nur ein Integer angenommen werden:
Später brauche ich die Keys, am besten auch als Integer. So dass ich sie in einer Schlaufe durchlaufen kann. Versucht habe ich es über ein Array:
Allerdings wirft das eine java.lang.ClassCastException.
Zwei Fragen:
1. wieso soll ich das Array eigentlich casten? Eigentlich ist doch schon von Anfang an klar dass es nur Integers beinhalten kann.
2. So casten funktioniert ja nicht, gäbe es eine Möglichkeit schnell eine Integer-Liste (Array, Interator, egal) daraus zu bekommen?
(In der zwischenzeit mache ich einfach ein Object[] Array und caste den jeweiligen Wert halt immer dort wo ich es gerade brauch)
---
Gibt es eigentlich ein alternatives Konstrukt zum eben das machen was ich hier machen will:
eine Liste in der man via Key einen Wert hinterlegen, ABER auch schnell alles Keys rausholen kann (eine HashMap ist dafür ja eigentlich nicht gedacht).
Gruss und schonmal Danke
jeipack
PS: Benutze Java 5
Ich habe eine HashMap, der ich auch angebe welche Objekte darin vorkommen können. Als Key kann nur ein Integer angenommen werden:
Java:
Map<Integer, Double> mapBaujahr = new HashMap<Integer, Double>();
Java:
Integer[] jahre =(Integer[])mapBaujahr.keySet().toArray();
Allerdings wirft das eine java.lang.ClassCastException.
Zwei Fragen:
1. wieso soll ich das Array eigentlich casten? Eigentlich ist doch schon von Anfang an klar dass es nur Integers beinhalten kann.
2. So casten funktioniert ja nicht, gäbe es eine Möglichkeit schnell eine Integer-Liste (Array, Interator, egal) daraus zu bekommen?
(In der zwischenzeit mache ich einfach ein Object[] Array und caste den jeweiligen Wert halt immer dort wo ich es gerade brauch)
---
Gibt es eigentlich ein alternatives Konstrukt zum eben das machen was ich hier machen will:
eine Liste in der man via Key einen Wert hinterlegen, ABER auch schnell alles Keys rausholen kann (eine HashMap ist dafür ja eigentlich nicht gedacht).
Gruss und schonmal Danke
jeipack
PS: Benutze Java 5
Zuletzt bearbeitet: