2017-04-14 20 views
0

在Java中,我們可以使用枚舉來遍歷散列表。但Java編譯器抱怨Enumeration變量是一個原始類型。如何使用散列表處理枚舉

下面是代碼:

Hashtable <Integer, Integer> Myhash = new Hashtable <Integer, Integer>(); 
Enumeration e; 
e = MyHash.values(); 

編譯器抱怨說,枚舉是原始類型。我們如何定義代碼,所以事實並非如此?

回答

0

試試這個:

Enumeration e = Collections.enumeration(MyHash); 
+0

這仍然不起作用。但這是一個很好的猜測。它產生了一種不同的錯誤。它說它缺少泛型類的類型參數。 – xarzu

3

有幾個問題與您的代碼:

  1. 您使用的是原始類型。你的變量應聲明其泛型類型參數:

    Enumeration<Integer> e; 
    
  2. Hashtable.values()回報Collection,不Enumeration。你可能希望這樣的:

    e = MyHash.elements(); 
    
  3. HashtableEnumeration已過時多年。除非是向後兼容,否則應該使用HashMapIterator

+0

我試過hashMap。還有一個問題。迭代器與編譯器中的枚舉器存在相同的問題,因爲它們都不能是原始代碼。 – xarzu

+0

而且兩種解決方案都是相同的。不要使用原始類型。 – shmosel