java.lang.OutOfMemoryError:java列表中的java堆空间<;地图<&燃气轮机&燃气轮机;

java.lang.OutOfMemoryError:java列表中的java堆空间<;地图<&燃气轮机&燃气轮机;,java,Java,我在键入列表时遇到问题。我定义了一个Map变量,其中包含一个项目(size=1),然后在另一个列表中添加该变量的克隆。但是,当我在下一步阅读时,我对列表中读取的项目(Map)有一个奇怪的问题,因为读取的变量的大小很大,即使添加的变量的大小为1 为什么会这样 List<PlacementElementByHost> Placement_Queue = new LinkedList<>(); while(...){ PlacementElementByHost firs

我在键入
列表时遇到问题。我定义了一个
Map
变量,其中包含一个项目(size=1),然后在另一个
列表中添加该变量的克隆。但是,当我在下一步阅读时,我对
列表中读取的项目(
Map
)有一个奇怪的问题,因为读取的变量的大小很大,即使添加的变量的大小为1

为什么会这样

List<PlacementElementByHost> Placement_Queue = new LinkedList<>();

while(...){
  PlacementElementByHost first=new PlacementElementByHost(Placement_Queue.get(0));
  Placement_Queue.remove(0);
  PlacementElementByHost new_element=new PlacementElementByHost();
  new_element.migrationMap.add(new HashMap<>(migrate));
  for(...){
  Placement_List.add(new PlacementElementByHost(new_element));
  }
}

寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅。请尝试增加vm内存。Java堆空间错误不是溢出。
列表的大小
与它包含的
对象的大小无关。可能是重复的感谢Eypros的帮助,但是我知道
first.migrationMap
的大小不应该太大,因为
for
循环只执行了198次,但是
first.migrationMap
中添加的项是1341312<代码>第一个。migrationMap
应该只有一个项目(大小=1)。尽管我尝试将虚拟机内存增加到1500m,但结果与以前一样。我发现了问题。问题来自一个
List
变量,该变量是其所用函数中的一个参数,定义为一个扩展参数,我在一个对象中添加了这个参数,在另一个
List
中添加了对象。因为我的参数状态(

PlacementElementByHost first=new PlacementElementByHost(Placement_Queue.get(0));