了解java hashmap并设置对象的值

时间:2017-07-31 12:29:16

标签: java hashmap

我是一个迁移到Android的旧视觉基础应用程序,随着我的进步,我遇到了一些我无法解决的问题。 (我是java的新手)

在VB中有一些叫做Dictionary的东西,在google搜索java中的等价物之后我得出结论,使用的是HashMap。

我需要创建一个HashMap,其中字符串为key,int []为object:

HashMap<String, int[]> hm

到目前为止,这么好。我在创建int []之后了解到,我按照以下方式设置HashMap ...

int[] intArray = new int[23];
hm.put("myRandomString", intarray);

现在问题是,如何在intArray中更改位置x的值?

我知道我会用密钥找到intArray,但我尝试的任何东西都会给我一个错误。

2 个答案:

答案 0 :(得分:3)

简单:

String someKey = "myRandomString";
int[] arrayFromMap = hm.get(someKey);
if (arrayFromMap != null) {
  arrayFromMap[x] = y;

除此之外,您可以/应该使用以下方法:

if (hm.contains(someKey))

if (arrayFromMap.length > x)

检查这里可能出错的所有可能的事情。还要注意细节,如:

int[] oneArray = { 1, 2 , 3};
hm.put("a", oneArray);
hm.put("b", oneArray);

使用两个不同的键添加相同的数组。当你知道做get("a")并操纵相应的数组时,“b”的值也会改变!

答案 1 :(得分:2)

首先必须get()数组:

int[] arrToBeModified = hm.get("myRandomString");

arrToBeModified[0] = 123; // Do your modifications here.