java - 从不同的队列中删除一个对象而不迭代它们或使用硬编码

标签 java algorithm

在我的代码中,出于某些原因,我使用了 28800 个不同的队列。并且这些队列可以同时包含具有不同顺序的相同对象。例如

LinkedList<Object> queue1 = new LinkedList<Object>();
Vector<Object> queue2 = new Vector<Object>();
ArrayList<Object> queue3 = new ArrayList<Object>();
...

Object a = new Object();
Object b = new Object();
Object c = new Object();
queue1.add(a);
queue1.add(b);
queue1.add(c);
queue2.add(b);
queue2.add(c);
queue3.add(c);

正是我需要的是,我想从所有这些 28800 个队列中删除一个对象。

如何从所有队列中删除一个对象而不迭代它们或硬编码 28800 行,如 queueX.remove(myObject);

其实我正在寻找更聪明的方法,这可能吗?

我还尝试将我想要解除分配的对象设置为空,但所有这些队列类型(数组列表、链表、 vector 等)仍然包含该对象作为空状态。

P.S:我在java中试过了,但是语言可以是c或c#,其实没关系。所以我对 arraylist、vector 等队列类型很灵活。

最佳答案

更聪明的方法是您的对象广播一个“deleteMe”事件,然后所有队列将监听该事件并通过从它们自己中删除该对象做出相应的 react 。为此,您首先必须实现某种事件注册和事件分发机制。

关于java - 从不同的队列中删除一个对象而不迭代它们或使用硬编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41163789/

相关文章:

java - java如何区分字符是全角还是半角?

java - 将字符串日期转换为 ISO 格式日期

java - log4j:WARN 在 org.apache.log4j.DailyRollingFileAppender 中没有这样的属性 [maxFileSize]

string - 字典排序 O(m)

algorithm - 提高找到树中心的速度?

algorithm - 0-1 重量等于容量而不是小于或等于容量的背包

java - 快速更改Android系统语言

java - 使用 Guice 和 "Law of Demeter"进行依赖注入(inject)

javascript - 在通用树中查找元素

java - 寻找滑动窗口中的最大值