在我的代码中,出于某些原因,我使用了 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/