我已经搜索了答案,但是没有找到完全可以回答我的问题的东西。 :D
所以,我需要从一个哈希映射表创建另外3个新的哈希映射表,用三种不同的方式交换其中2个值(我使用
问题是,由于特定条件未满足,我必须多次执行此操作...而且没有办法减少我所做的地图数量(好吧,我可能会阻止重复的地图,但这可能非常昂贵:/)。
实际上,我真的不介意如果我在某个地方存储了所有的地图(根据我读到的内容,我发现这是GC的错误),或者如果我必须进行其他技巧...我只想让我的代码能够工作,而不使用像“-XX:-UseGCOverheadLimit”这样的东西,因为这是一种作业(即使没有分数),而且它必须通过提示符的“java classname”运行。
唯一的限制是时间(这不是问题,我对此非常确定,已经测试过),它将被测试只用简单的输入(其中已经很好了),但我希望它能够处理更困难的输入。
我提前感谢您。
哦,地图是这样的:
所以,我需要从一个哈希映射表创建另外3个新的哈希映射表,用三种不同的方式交换其中2个值(我使用
map2.putAll(map1)
然后切换2个值),之后我必须将哈希映射表存储在有序的优先队列中,然后轮询其中一个并重复该过程。问题是,由于特定条件未满足,我必须多次执行此操作...而且没有办法减少我所做的地图数量(好吧,我可能会阻止重复的地图,但这可能非常昂贵:/)。
实际上,我真的不介意如果我在某个地方存储了所有的地图(根据我读到的内容,我发现这是GC的错误),或者如果我必须进行其他技巧...我只想让我的代码能够工作,而不使用像“-XX:-UseGCOverheadLimit”这样的东西,因为这是一种作业(即使没有分数),而且它必须通过提示符的“java classname”运行。
唯一的限制是时间(这不是问题,我对此非常确定,已经测试过),它将被测试只用简单的输入(其中已经很好了),但我希望它能够处理更困难的输入。
我提前感谢您。
哦,地图是这样的:
<Integer, Integer>,大小为 16 。不幸的是,我不能在这里发布代码,因为家庭作业尚未结束(即使我提交了我的) 。
Thread.yield()
或甚至一些Thread.sleep()
来减慢应用程序的速度,从而可以减少与 GC 所花费时间的比例。 - biziclop