java.lang.OutOfMemoryError : Java heap space 错误

标签 java list collections out-of-memory heap-memory

我正在玩 Oracle 网站上的一些集合示例

public class Timing {

    public static void method(){

        List numbers = new ArrayList();

        for (double i = 1; i <= Double.MAX_VALUE; i++)
        numbers.add(new Double(i));

        Collections.shuffle(numbers);
        List winningcombination = numbers.subList(0, 10);
        Collections.sort(winningcombination);
    }

    public static void main(String[] args)
    {
        long start = System.currentTimeMillis();
        method();
        long end = System.currentTimeMillis();
        System.out.println("time elapsed : " + (end-start));
    }
}

我试图查看为 Double.MAX_VALUE 执行此操作需要多长时间。我得到了这个:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Unknown Source)
    at java.util.Arrays.copyOf(Unknown Source)
    at java.util.ArrayList.ensureCapacity(Unknown Source)
    at java.util.ArrayList.add(Unknown Source)

我有办法解决这个问题吗?

最佳答案

有没有办法允许您在 Collection 中创建和存储 Double.MAX_VALUE 对象?不,地球上没有那么多 RAM。 Double.MAX_VALUE 大约是 2 乘以 10 的 308 次方:即 2 后跟 300 多个零。给 Best Buy 打个电话,看看他们把它装进你的电脑要多少钱。

关于java.lang.OutOfMemoryError : Java heap space 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7013384/

相关文章:

java - 具有权重或偏差的随机 boolean 值

如果满足条件,则修改列表元素的 Pythonic 方法

javascript - Angular/AngularFire2 Firestore - 初始化可观察集合

Java线程输出数据到集合得到错误的结果

java - 如何在 HashMap 中添加、删除和保存值

java - 使用 Salesforce REST API 按状态检索订单

c# - 在Hashtable中打印的顺序?

arrays - 列表理解的方法,以设定的间隔将不同的字符串连接到列表中。 (与语言无关)

python - 合并两个列表并删除重复项,而不删除原始列表中的重复项

c# - .NET 中的树集合