使用变量选择数组

时间:2012-02-15 04:50:18

标签: android

我正在开发一个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”......

再次感谢

2 个答案:

答案 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();