是否以任何方式修改已经添加到队列中的对象? (例如,让我们假设我想实现一个具有事务列表的FIFO队列)我不想/不需要更改队列中事务的顺序,我只想更新一些数量,并且如果可用数量已用尽来自队列的交易。我已经检查了peek/deque等,但是这似乎并不能提供想要的行为修改已排队的数据java
0
A
回答
1
显然我犯了一个错误。似乎可以通过偷看并修改内容来获取对象的引用。
例如
Queue<Transaction> bought_fifo = new LinkedList<Transaction>();
Transaction tr2 = bought_fifo.peek();
tr2.setPrice(new BigDecimal(1000000000L));
正如我只需要在一个FIFO方式,以适应数量 并移动到下一个交易如果数量不够它解决了我的需要。为了更高级的使用(数据中的随机变化),你确实可以建立自己的。谢谢
0
在java中,每个抛出对象的变量实际上只持有对该对象的引用。所以,如果你仍然有你的对象,你可以编辑它。例如:
Object test= new Object();
ArrayList<Object> list =new ArrayList();
list.add(test)
//if you change the object test now and then take the object from the list it will be changed
相关问题
- 1. 数据库排队
- 2. Excel排队数据
- 3. 排队的数据输出
- 4. 修改已排序的数组的交集
- 5. 修改Java数组
- 6. 排队方法,当队列已满时增加数组大小
- 7. 如何通知Java程序数据库的数据已更改
- 8. 修改sql表中已包含数据的列的后续值
- 9. Java并发:排队队列问题
- 10. 修改JSON数据
- 11. 用NFQUEUE发送排队的数据包?
- 12. 从已修改的数据库字段中创建URL
- 13. 已修改的实体不反映在数据库中
- 14. 我想修改xml文件中已有的数据使用PHP
- 15. 使用Java排队锁
- 16. Java:排序对象队列
- 17. 修改SimpleCursorAdapter的数据
- 18. 修改数据包的netfilter
- 19. 修改SimpleCursorAdapter的数据
- 20. Python的修改CSV数据
- 21. 修改场 - java的
- 22. Java修改XML
- 23. Java:排序数据
- 24. 修改队列中的作业Laravel
- 25. 如何修改符合队列的行?
- 26. 修改队列中的顶层元素
- 27. 使用数据库或MSMQ排队?
- 28. C++ UDP套接字数据包排队
- 29. Laravel数据库排队作业尝试
- 30. 找出当行已经在H2数据库表被修改
如果你已经有了对你想要修改的对象的引用,它也会在队列中被修改,因为队列将引用同一个对象。如果您不这样做,那么您需要提供一种方法来查找和访问队列中的特定对象。在Java中实现'Queue'接口的'Collection'将允许您使用它的'Iterator'实现来搜索'Queue'。 –
是的,有一个自定义的实现可能是要走的路,因为有引用是不可能的.thx – jcuypers