我正在尝试编写一个程序来创建一个初始大小为 1 的 ArrayList 并用随机数填充它。接下来,ArrayList
被清空,ArrayList
的大小增加 1,并再次用随机数填充。我希望我的程序重复这些步骤,直到 ArrayList 大小等于用户指定的数字。
因此输出将如下所示:
1
3,8
6,3,7
...
n
到目前为止我已经制作了:
public static void main (String args[]){
ArrayList<Integer> al = new ArrayList<Integer>();
Random rand = new Random();
int val=1;
int ii =1;
while(val<400){
for (int j = 0; j<ii;)
{
ii++;
val++;
pick = rand.nextInt(100);
al.add(pick);
}
System.out.println("Contents of al: " + al);
al.clear();
System.out.print("Array has been cleared: " + al);
}
有什么想法可以让它发挥作用吗?
最佳答案
你永远不会增加j。 您在 for 循环内递增 ii 和 val ,因为我认为您实际上想在 while 循环中执行此操作。尝试下面的示例。
ArrayList<Integer> al = new ArrayList<Integer>();
Random rand = new Random();
int val=1;
int ii =0;
while(val < 400){
for (int j = 0; j<ii; j++) {
int pick = rand.nextInt(100);
al.add(pick);
}
ii++;
val++;
System.out.println("Contents of al: " + al);
al.clear();
System.out.print("Array has been cleared: " + al);
}
如果您为变量指定有意义的名称,您的任务会容易得多。例如
ArrayList<Integer> al = new ArrayList<Integer>();
Random rand = new Random();
int lineNumber = 1;
int lineLength = 0;
while(lineNumber < 400){
for (int randCount = 0; randCount < lineLength; randCount++) {
int pick = rand.nextInt(100);
al.add(pick);
}
lineLength++;
lineNumber++;
System.out.println("Contents of al: " + al);
al.clear();
System.out.print("Array has been cleared: " + al);
}
关于java - ArrayList 和 java.lang.OutOfMemoryError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28505968/