簡體   English   中英

如何訪問 HashMap 內對象中的值

[英]How do I access the values in an object inside a HashMap

我正在嘗試訪問在 HashMap 中列出的類中保存的值。

在我的第一堂課中,我創建了一個鏈接到“LiftingStats”類的 HashMap。

Map<String, LiftingStats> fitnessGoals = new HashMap<String, LiftingStats>();

在 LiftingStats 類中,我執行以下操作...

public class LiftingStats
{
   public String activity;
   public String weightType;
   public int weight;
   public double difficulty;

   /**
    * Constructor for objects of class LiftingStats
    */
   public LiftingStats()
   {
      this.run();
   }

   /**
    * test method to fill values
    */
   public void run(){
      //code
      this.activity = "bench press";
      this.weightType = "Kg";
      this.weight = 100;
      this.difficulty = 8.5;
   }

我正在運行一個測試方法來用一些值填充哈希圖

   public void testMethod(){
      fitness.put("activityone", new LiftingStats());
      fitness.put("activitytwo", new LiftingStats());

有很多方法可以訪問它們。

用於檢索特定key條目的值

LiftingStats valueForOne = fitness.get("activityone");

用於在不關心鍵的情況下檢索值

Collection<LiftingStats> values = fitness.values();

用於檢索鍵值對

Set<Map.Entry<String, LiftingStats>> entries = fitness.entrySet();
for (Map.Entry<String, LiftingStats> entry : entries) {
   entry.getValue();
}

或某種變體。

Map 是由Key, Value對組成的數據結構。 在這種情況下,您有兩個鍵引用LiftingStats對象的兩個實例。 要訪問這些對象,只需使用您的特定密鑰來檢索對象。 前任:

LiftingStats current = fitness.get("activityone");

通過對current的引用,您可以對該特定LiftingStats對象執行操作。

類似地,您可以像這樣將“菊花鏈”函數調用放在一起,並且仍然可以改變 Map 中的對象。 前任:

fitness.get("activityone").someMethod();

您可以將此答案調整為您的問題: 如何有效地迭代地圖中的每個條目?

Map<String, LiftingStats> fitnessGoals = new HashMap<String, LiftingStats>();
for (Map.Entry<String, LiftingStats> entry : fitnessGoals.entrySet())
{
    //What you need to do with your map
}

訪問 HashMap 中對象變量的另一種方法是將 Hashmap 的 getValue() 方法獲取的數據類型轉換為用戶定義的類。

您可以使用以下代碼:

Map<String, LiftingStats> lstats= new HashMap<String, LiftingStats>();
for (Map.Entry ls:lstats.entrySet()) {
    System.out.println(ls.getKey()+" "+((LiftingStats)ls.getValue()).activity);
}

類中存在的任何變量都可以通過使用 ((LiftingStats)ls.getValue()) 來訪問。 變量名 其中 Var_name 是任何類變量的名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM