java - ArrayList 和 java.lang.OutOfMemoryError

标签 java arrays

我正在尝试编写一个程序来创建一个初始大小为 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/

相关文章:

java - 如何通过从继承转向组合来简化 Java 代码

java - 抛出异常和@JMSListener 时,SQS 消息可见性超时设置为 0

c++ - 在排序数组中查找旋转点

ruby-on-rails - 如何在 ruby​​ on rails 中按日期对二维数组(2d 数组)进行排序?

java - Tomcat 运行但在尝试访问我的 html 时给出 404,但在安装后显示 tomcat 的默认页面

java - 与 Android 线程、Handler 和 HandlerThreads 的并发

ios - [AnyObject] ?' does not have a member named ' 下标'

javascript - "array is not a function"错误

java - 如何将排序扩展添加到 IMAP 服务器?

arrays - Delphi 中以空终止整数的 BYTE 数组 (BYTE[]) 相当于什么?