2014-02-28 89 views
0

我有一個由String和Double組成的散列表 A, 8.0是其中的一個例子。我如何訪問8.0?我只是去hashtable.get(A)?我試圖讓兩個單獨的鍵的值添加在一起。HashTable <String Double>

NodeStack myStack=new NodeStack(); 
    for(int i=0; i<infix.length(); i++){ 
     char ch=infix.charAt(i); 
     if(ch=='+'){ 
      Character one=(char) myStack.pop(); 
      Character two=(char) myStack.pop(); 

      double first=Double.parseDouble(numbers.get(one));//, second=numbers.get(two); 
      double temp=first;//+second; 
      myStack.push(temp); 
     } 
+1

那麼,根據文檔,你這樣做。 http://docs.oracle.com/javase/7/docs/api/java/util/Hashtable.html –

+2

不要使用散列表類,而是使用Map代替。 – hd1

+0

@ hd1'Hashtable'實現'Map';你的意思是「使用另一個'Map'實現:p – fge

回答

3

您可以使用get(key)方法訪問散列表中的值。你的情況,你可以做到以下幾點:

Character one=(char) myStack.pop(); 
Character two=(char) myStack.pop(); 

String str1 = Character.toString(one); 
String str2 = Character.toString(two); 

double first=Double.parseDouble(numbers.get(str1)); 
double second=Double.parseDouble(numbers.get(str2)); 
double temp=first+second; 
myStack.push(temp); 

由於您的哈希表關鍵是你需要的get()方法使用一個字符串的字符串。

+0

根據表的實現方式,它不需要解析爲雙:) –

+0

@NicolaiDitlevKroghKrügertrue!我想我只會堅持使用OP,認爲他們知道他們是如何定義桌子的,並且可以根據需要進行調整。 – TronicZomB

+0

我不想得到字符串「one」我想要從堆棧中彈出「A」的值。我不知道我是否實現了Map錯誤或什麼,但是我不應該將信件從堆棧中彈出,從中創建一個E對象,然後將其綁定到String中,然後從該String中獲取double ? – kevorski

相關問題