使用随机数据填充数组列表

时间:2014-08-11 07:58:14

标签: java arraylist multidimensional-array

我有以下变量和ArrayList

int rowLength, columnLength;
ArrayList<String[]> data = new ArrayList<String[]>();

我需要用随机数据填充此数组列表。数据必须是字符串(已推荐int已转换为String)。主要目标是用随机数据填充多维数组列表。

我试图这样做,但我遇到了太多麻烦。我是Java的新手,所以有时我也需要基本的帮助。

4 个答案:

答案 0 :(得分:2)

尝试使用Random中的nextInt()。这将创建一个随机int,您可以将其包含在Integer.toString(int i)中。然后将其添加到String [],然后将其添加到ArrayList。

例如:

Random r = new Random();
for (int i = 0; i < columnLength; i++) {
    String[] s = new String[rowLength];
    for (int i = 0; i < s.length; i++) {
        s[i] = Integer.toString(r.nextInt());
    {
    data.add(s);
}

答案 1 :(得分:0)

使用嵌套for循环如下:

int rowLength = 10, columnLength = 5; //Initialize sizes
ArrayList<String[]> data = new ArrayList<String[]>();

for (int row = 0; row<rowLength; row++) {
    String[] stringsColumn = new String[columnLength];
    for (int col = 0; col <columnLength; col++) {
        stringsColumn[col]=Integer.toString(col);
    }
    data.add(stringsColumn);
}

输出循环

//Note that this output loop will interchange the columns for rows but it works fine for demonstration
for (String[] col:data){
    for (String s:col){
        System.out.print("\t"+s);
    }
    System.out.println();
}

<强>输出

0   1   2   3   4
0   1   2   3   4
0   1   2   3   4
0   1   2   3   4
0   1   2   3   4
0   1   2   3   4
0   1   2   3   4
0   1   2   3   4
0   1   2   3   4
0   1   2   3   4

答案 2 :(得分:0)

您可以尝试这样的事情:

public String generateRandomString(int len) {
    String AB = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    Random rnd = new Random();
    StringBuilder sb = new StringBuilder(len);
    for (int i = 0; i < len; i++)
        sb.append(AB.charAt(rnd.nextInt(AB.length())));
    return sb.toString();
}

而且:

public Integer generateRandomInteger(int range) {
    Random rnd = new Random();
    Integer val = rnd.nextInt(range);
    return val;
}

拥有这两个函数,您可以将随机数据添加到ArrayList:

data.add(generateRandomString(10));
data.add(generateRandomInteger(200));

答案 3 :(得分:0)

有许多很多方法可以做到这一点。从我从你的片段中看到的是,你确实期望这个&#34;多维的&#34; &#34;阵列&#34;:isch thingy。

int rowLength, columnLength;
然后,

意味着两个维度,是这种情况还是您期望更多维度,维度是动态的?如果两个是极限,我猜String [] []会做,否则一些更动态的Map或List构造应该有效。