我有以下变量和ArrayList
:
int rowLength, columnLength;
ArrayList<String[]> data = new ArrayList<String[]>();
我需要用随机数据填充此数组列表。数据必须是字符串(已推荐int
已转换为String
)。主要目标是用随机数据填充多维数组列表。
我试图这样做,但我遇到了太多麻烦。我是Java的新手,所以有时我也需要基本的帮助。
答案 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构造应该有效。