如何解决OutOfMemoryError:Java堆空间

val*_*lik 1 java

运行此代码时出现此错误

private static List<Integer> array(int num) {
       List<Integer> value = new ArrayList<>();

        while (num != 1) {
            if(num % 2 == 0) {
             value.add(num + 2);
             }else {
              value.add(num * 3 + 1);
             }
        }
       System.out.println(value);
        return value;
    }
Run Code Online (Sandbox Code Playgroud)

我能得到什么错的解释吗?

小智 5

您有一个无限循环。每次迭代都会添加到列表中,直到您运行OutOfMemory。您需要在循环过程中更改num的方式,使其在某些时候变为1,以便循环结束。