将单词存储在数组中

时间:2015-03-10 21:51:47

标签: java android arrays

我需要一大堆单词。所以我使用一个存储四个单词的数组。问题是我需要300多个阵列。我认为我的解决方案并不好......

首先,我将这些单词存储在数组中,如下所示:

array1 = new String[]{"Hello","Hello","Hello","Hello"};
    array2 = new String[]{"Hello","Hello","Hello","Hello"};
    array3 = new String[]{"Hello","Hello","Hello","Hello"};
    array4 = new String[]{"Hello","Hello","Hello","Hello"};
    array5 = new String[]{"Hello","Hello","Hello","Hello"};

然后我生成一个选择数组的随机数。交换机外壳非常大,对许多阵列而言看起来都是一个糟糕的解决方案。

int random = r.nextInt((5 - 1) + 1) + 1;

    switch(random){
        case 1: array = array1; break;
        case 2: array = array2; break;
        case 3: array = array3; break;
        case 4: array = array4; break;
        case 5: array = array5; break;
    }

所以,如果我有很多阵列,那么交换机案例将非常庞大且不清楚。我需要一些想法以获得更好的解决方案。

来自德国的问候。 :)

3 个答案:

答案 0 :(得分:1)

更好的解决方案是保留一个数组数组(一个2D数组,如Ryan的评论中所示)。不要使用switch语句,而是使用随机变量作为外部数组的索引。

填充数组的一种可能方法......

int numArrays = 5;
int numElements = 4;
String[][] arrays = new String[numArrays][numElements];
for (int i=0; i<numArrays; i++)
{
    for (int j=0; j<numElements; j++)
    {
        arrays[i][j] = "Hello";
    }
}

随机获取数组......

int random = r.nextInt(numArrays);
String[] array = arrays[random];

答案 1 :(得分:0)

也许您可以创建这样的地图:

Map<Integer,String[]> storedArray = new HashMap<Integer,String[]>(); 

并使用密钥获取阵列?

答案 2 :(得分:0)

你的问题有两个答案,一切都取决于你是否严格需要内存上的300多个数组,或者你是否需要。

如果你不是最好的选择是拥有一个包含所有单词的大数组,这甚至可以是一个千字的数组,然后有一个所需大小的第二个并随机填写单词。这种方法使用更少的内存。你的代码看起来像这样:

String[] wDictionary = new String[]{"A...","n..."};
String[] wArray = new String[Array Size];

for (int j=0; j<=wArray.getSize; j++)
{
    wArray[j] = wDictionary[random];
}

现在,如果您需要启动和加载300多个阵列,您可以使用Rayan J.的方法并使用二维数组。这里不使用开关盒,而是使用随机选择阵列。它类似于在表中选择多行填充单词的行。

祝你好运!