我是一个迁移到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,但我尝试的任何东西都会给我一个错误。
答案 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.