2013-07-18 84 views
0

我僅限於在Java中使用舊版集合。 我創建了一個哈希表無法從哈希表中檢索浮點數組

private Hashtable dataStock = new Hashtable(); 

與此哈希表的條目之一是float數組

dataStock.put("someArray", new Float[24]); 

當我想要從哈希表該條目是這樣的:

Float[] anotherArray = (Float[]) dataStock.get("someArray"); 

我得到以下拋出異常:

Exception in thread "main" java.lang.ClassCastException 
at java.lang.Throwable.fillInStackTrace(<unknown source file>:130) 
at java.lang.Throwable.<init>(<unknown source file>:51) 
at java.lang.Exception.<init>(<unknown source file>:13) 
at java.lang.RuntimeException.<init>(<unknown source file>:18) 
at java.lang.ClassCastException.<init>(<unknown source file>:17) 
at fr.ecosense.business.FlashMemory.restoreStockData(FlashMemory.java:297) 

我在做什麼錯?爲什麼將數組存儲在Hashtable中不同於存儲其他對象?我正在尋找一個解釋,但是關於在哈希表中存儲數組的信息很少。

編輯:我正在使用Java ME。也許這可能會導致一些意想不到的行爲..

+0

你正在做的一切正確。您收到的例外是由於其他原因而產生的。 – Andremoniy

回答

3

只是爲了演示。這段代碼:

Hashtable dataStock = new Hashtable(); 
    dataStock.put("someArray", new Float[24]); 
    Float[] anotherArray = (Float[]) dataStock.get("someArray"); 

效果很好。這意味着,在您的代碼中的某個地方,您可以使用密鑰someArray將其他值與dataStock放在一起,其類型與Float[]不同。

+1

事實上,我在另一個數組中使用了類型爲float []的鍵,而不是Float []。謝謝! –