修改已经排队的数据java

时间:2017-10-15 16:37:03

标签: java queue

是否可以修改已添加到队列中的对象? (例如,我们假设我想实现一个带有事务列表的FIFO队列)我不想/需要更改队列中事务的顺序,我只想更新一些数量,如果可用数量已耗尽从队列中删除事务。我检查了peek / deque等,但这似乎并没有提供想要的行为

2 个答案:

答案 0 :(得分:1)

显然,我犯了一个错误。似乎可以通过窥视获取对象的引用并修改内容。

e.g。

Queue<Transaction> bought_fifo = new LinkedList<Transaction>();
Transaction tr2 = bought_fifo.peek();
tr2.setPrice(new BigDecimal(1000000000L));

因为我只需要以FIFO方式调整数量,如果数量不足就转移到下一个交易,它解决了我的需要。
对于更高级的使用(数据的随机更改),您确实可以构建自己的。

答案 1 :(得分: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