我正在开发一个Android应用程序项目。我有一个包含55个单词的数组。此数组中的每个单词都有另一个单词数组,如果选中它将使用它。我的问题是我不知道如何使用变量访问第二个数组。
假设我把数组放在java文件中并想要访问随机数组,它可能是这样的:
for (int i = 0; i < variable_name.length; i++) {
arrayList.add(variable_name[i]);
}
这不起作用。
如果我将数组放入XML文件中,我会尝试访问它:
String [] some_array = getResources()。getStringArray(R.array.variable_name);
这不起作用。
虽然与Actionscript中的讨论无关,但可以这样做:
for (var a:int = 0; a < this[variable_name+"Array"].length; a++){
tempWordList[a] = this[variable_name+"Array"][a];
}
我应该补充的一点是,变量访问的数组中的元素数量并不完全相同。例如有些可能有4个,有些可能有6个或7个。
感谢下面的输入,我能够提出一个可行的解决方案。我是编程的新手,所以这不是最有效的解决方案,但确实有效。
String[] Words = { "zero", "one", "two" };
String[][] otherWords = { { "green", "blue" }, { "orange", "red" }, { "yellow", "purple" } };
for (int i = 0; i < Words.length; i++) {
if (Words[i] == targetWord) {
arrayLocation = i;
}
}
for (int i = 0; i < otherWords[arrayLocation].length; i++) {
String wordsToAdd = otherWords[arrayLocation][i];
newWordList.add(wordsToAdd);
}
如果字符串变量targetWord等于“1”,则ArrayList newWordList将等于“orange”和“red”......
再次感谢
答案 0 :(得分:2)
Java不允许数组使用非整数索引。你有两个选择。经理两个不同的数组,如:
String[] words = { "zero", "one", "two" };
String[][] otherWords = { { "green", "blue" }, { "orange", "red" }, { "yellow", "purple" } };
在这种情况下,数组'words'的索引也用于索引创建关联的数组'otherWords'。
另一个更简单的选项是使用Map<String, List<String>>
来存储您的值。在这种情况下,您可以简单地调用map.get(“zero”),它将创建一个包含值“green”和“blue”的List。您必须编写代码来使用您的值加载地图,最后,您可能最终会使用这两个选项的组合。
答案 1 :(得分:1)
像这样使用..
mainArray.get(0).get(0).toString();
从子数组
获取索引0处的值这是来自子数组的索引1
mainArray.get(0).get(1).toString();