-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);
    }  
}
}

你好,

我想获取存储在地图中的值,但我只获取内存位置,Key = 1,Value = clsWarehouse$1Items@c3c749。有人可以帮我弄这个吗。

谢谢!

4

2 回答 2

0

覆盖类中的toString()方法,Items以便在调用它时控制输出。中的默认实现Object会产生您正在观察的行为(来自链接的 Javadocs)

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

hashCode()默认情况下,该方法使用内存地址

于 2013-04-22T18:32:50.363 回答
0

Items在课堂上添加您需要的吸气剂

Ex(用于 ItemID):

public String getItemID()
{
    return iItemID;
}

在你的for loop

Items test = entry.getValue();
System.out.println(test.getItemID());
于 2013-04-22T18:34:58.897 回答