[英]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.