相关疑难解决方法(0)

奇怪的HashMap.put()行为

我正在尝试解决间歇性故障,该故障似乎与从HashMap中删除对象然后使用新密钥放回同一对象有关.我的HashMap创建如下:

transactions = new HashMap<Short, TransactionBase>();
Run Code Online (Sandbox Code Playgroud)

执行重新分配的代码如下:

transactions.remove(transaction.tran_no);
transaction.tran_no = generate_transaction_id();
transactions.put(transaction.tran_no, transaction);
Run Code Online (Sandbox Code Playgroud)

我看到的间歇性行为是,在此之后立即执行的代码依赖于可定位的事务对象,似乎不会使用新的事务id找到事务对象.但是,在将来的某个时刻,可以找到交易.所以拉扯秸秆,put()或删除会产生这种行为的异步效果吗?

我应该提一下,据我所知,容器只能由一个线程访问.我已经在文档中读到类HashMap没有"同步".

java hashmap

1
推荐指数
2
解决办法
3263
查看次数

标签 统计

hashmap ×1

java ×1