2013-04-22 91 views
-1
import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.util.HashMap; 
import java.util.List; 
import java.util.Map; 

public class clsWarehouse { 

public static void main(String[] args){ 

    class Items { 
     private String iItemID; 
     private String strItemName; 
     private String strItemDescription; 
     private String iItemPrice; 
     private String strSize; 
     private String strSex; 


    public Items (String id, String name, String description, String price, String size, String sex){ 
     iItemID = id; 
     strItemName = name; 
     strItemDescription = description; 
     iItemPrice = price; 
     strSize = size; 
     strSex = sex; 
     } 
    } 


Map<Integer, Items> ItemMap = new HashMap<Integer, Items>(); 
ItemMap.put(1, new Items("3", "test1", "test2", "30", "20", "Male")); 

for (Map.Entry<Integer, Items> entry : ItemMap.entrySet()) { 
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); 

     Items test = entry.getValue(); 
     String test2 = test.toString(); 
     System.out.println(test2); 
    } 
} 
} 

你好,如何獲得地圖值

我想存儲在地圖的價值,但我只得到存儲位置相反,關鍵= 1,值= clsWarehouse $ @共有1條c3c749。有人可以幫我弄這個嗎。

謝謝!

+0

落實'的toString()'方法。請使用大寫字母開始變量名稱的類名和小寫字母。 – 2013-04-22 18:32:50

+1

請注意,這個問題**沒有**與地圖。你在做例如時會遇到完全相同的問題'System.out.println(new Items(...))'而不使用任何地圖。我建議修復題目標題,正文和標籤。順便說一句,「Items」對於具體只代表一個項目的實例來說是一個相當差的名字。將其命名爲「Item」。 – BalusC 2013-04-22 18:34:32

回答

0

覆蓋您的Items類中的toString()方法,以便在調用它時控制輸出。在Object默認的實現產生你所觀察(從鏈接的Javadoc)行爲

getClass().getName() + '@' + Integer.toHexString(hashCode()) 

hashCode()方法,在默認情況下,uses the memory address

0

添加您在Items

EX(用於項ID)所需要的干將:

public String getItemID() 
{ 
    return iItemID; 
} 

,並在您for loop

Items test = entry.getValue(); 
System.out.println(test.getItemID());