2011-10-22 190 views
4

我試圖從給定的關鍵字的HashMap中獲取測試對象的速度,但我不太確定如何去做。我試過這種方式,但它的錯誤:如何從Java中的HashMap中獲取對象

hash.values().getSpeed(); 

任何幫助嗎?由於

class Test { 

      private String id; 
      private String name; 
      private int speed; 

      public Test(String id, String name, int speed) { 
       this.id = id; 
       this.name = name; 
       this.speed = speed; 

      } 

      public String getId() { 
       return id; 
      } 

      public String getName() { 
       return name; 

      } 

      public int getSpeed() { 
       return speed; 
      } 
     }  
    public class Driver {  
    public static void main(String[] args) { 
     HashMap<String, Test> hash = new HashMap<String, Test>(); 

      Test c1; 
      Test c2; 

      c1 = new Test("Z", "B", 4); 
      c2 = new Test("Y", "D", 7); 
      hash.put("A", c1); 
      hash.put("C", c2); 
    } 
} 

回答

8
Test c1; 
Test c2; 

c1 = new Test("Z", "B", 4); 
c2 = new Test("Y", "D", 7); 
hash.put("A", c1); 
hash.put("C", c2); 

Test getC1 = (Test)hash.get("A"); 
Test getC2 = (Test)hash.get("C"); 
+0

感謝禰麼俄,該代碼不正是我想要的,但它幫助我解決這個問題。我試圖做到這一點:hash.get(「C」)。getSpeed(); – Dan 2011-10-22 07:15:40

+1

@Mi Mee - 無需投入價值。你可以使用Test t = hash.get(「A」); – adatapost 2011-10-22 07:20:29

+0

是的,你說得對,因爲HashMap已經被初始化爲。現在才意識到它。 – 2011-10-22 07:34:19

1

有與下面的簽名+返回類型,我認爲Map接口的方法:

E get(T key); 
0

getput倒數。所以只是hash.get("C");會給你c1

我建議你在張貼之前查看Javadoc的更全面的類。

+0

我試着去獲得C1的速度,而不僅僅是景物C1 – Dan 2011-10-22 07:12:28

1

hash.get("A"),或者更一般地:hash.get(key),其中key是第一個參數到hash.put(key, value)呼叫。

2

values()方法返回包含在HashMap對象的集合。您可以使用for loop來遍歷值集合。

for(Test t:hash.values()) 
{ 
    System.out.println(t.getSpeed()); 
} 
+0

謝謝AVD。我試圖只獲得特定鍵的速度,但稍後可能會有用。 – Dan 2011-10-22 07:21:29

-1
public class Driver {  
    public static void main(String[] args) { 
     HashMap<String, Test> hash = new HashMap<String, Test>(); 
     Test c1; 
     Test c2; 
     c1 = new Test("A", "Maruthi", 4); 
     c2 = new Test("B", "Toyota", 7); 
     hash.put("A", c1); 
     hash.put("B", c2); 
     for(Test t:hash.values()) { 
      System.out.println(t.getSpeed() + " " + t.getId() + " " + t.getName()); 
     } 
    } 
} 
+2

用一些代碼描述更新你的答案。 – 2016-07-01 07:13:27