int []存储在Java中的对象中

时间:2012-06-22 03:43:18

标签: java object collections hashmap

我有一个值被声明为

的场景
 int[] rate = new int[] {5,6};
 int length = 26;

完成了一些处理,并将其存储到HashMap<String,Object>中,因此HashMap包含

"rate" ==> {5,6}
"length" ==> 26

当我检索“密钥长度”时,我能够看到相应的值而不是“密钥率”,是否有正确的方法来检索速率值?

当我尝试System.out.print时,我看不到清晰的价值观。

2 个答案:

答案 0 :(得分:3)

由于rate是一个数组,因此您必须使用Arrays.toString(rate)来查看其字符串表示形式。

您看到的难以辨认的值是数组的默认toString()实现。它通常是Classname@hashCode

答案 1 :(得分:0)

System.out.print(parameter)将始终在传入的参数上调用toString(),在您的情况下是一个数组,调用toString()打印结果没有意义,您将迭代数组并且一个接一个地打印出来。像这样的东西:

    int[] rate = (int[]) hashmap.get("rate");
    for (int i = 0, len = rate.length; i < len; i++) {
        System.out.println(rate[i]);
    }