我正在尝试将大约50,000个对象(因此有50,000个键)插入到java.util.HashMap<java.awt.Point,Segment>
中。但是,我一直收到OutOfMemory异常。(Segment
是我的自定义类 - 很轻量级 - 一个String
字段和3个int
字段。)
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at java.util.HashMap.resize(HashMap.java:508) at java.util.HashMap.addEntry(HashMap.java:799) at java.util.HashMap.put(HashMap.java:431) at bus.tools.UpdateMap.putSegment(UpdateMap.java:168)
这看起来相当荒谬,因为我发现机器上有足够的内存 - 包括可用的RAM和虚拟内存的HD空间。
可能Java运行时带着一些严格的内存要求吗? 我能否增加这些要求?
HashMap
是否存在某些奇怪的限制?我需要实现自己的类吗?还有其他值得看的类吗?
(我在2GB RAM的Intel机器上,在OS X 10.5下运行Java 5。)