具有内存大小限制的Java队列

具有内存大小限制的Java队列,java,memory-management,collections,queue,Java,Memory Management,Collections,Queue,我一直在试图找到一个具有特殊大小限制的Java队列实现。与通常限制队列中对象数量的size参数不同,我需要限制队列的最大内存使用量(以字节为单位)。队列将用于容纳大小不同的对象,有的很大,有的很小。也就是说,队列只能容纳少量的大型对象和较大数量的小型对象 另一种可能是在insert方法中使用size参数的队列。在向队列添加新元素时,我可以指定要添加的对象有多大 有人知道这样的Java队列实现吗 谢谢 在实现类的add方法中,始终使用sizeOf.deepSizeOf检查队列大小,如果此值超过预

我一直在试图找到一个具有特殊大小限制的
Java
队列实现。与通常限制队列中对象数量的size参数不同,我需要限制队列的最大内存使用量(以字节为单位)。队列将用于容纳大小不同的对象,有的很大,有的很小。也就是说,队列只能容纳少量的大型对象和较大数量的小型对象

另一种可能是在insert方法中使用size参数的队列。在向队列添加新元素时,我可以指定要添加的对象有多大

有人知道这样的
Java
队列实现吗

谢谢


在实现类的
add
方法中,始终使用
sizeOf.deepSizeOf
检查队列大小,如果此值超过预期限制,则抛出IllegalStateException或以其他方式处理错误。

欢迎使用Stackoverflow。共享您尝试过的代码。请查看前面的问题。一旦遵循这些规则,就应该能够创建所需的数据结构。试图计算内存使用率将非常缓慢,而且可能相当不准确。如果您想要任何性能,没有可行的方法可以做到这一点。获取任意Java对象的内存使用率是极其困难和昂贵的。你最好找一些其他指标来限制。
<dependency>
  <groupId>org.ehcache</groupId>
  <artifactId>sizeof</artifactId>
  <version>0.3.0</version>
</dependency>
private SizeOf sizeOf = SizeOf.newInstance();
sizeOf.deepSizeOf(someQueue)