【发布时间】:2012-11-01 21:23:08
【问题描述】:
我遇到了 contains() 方法的问题,即使 ArrayList 包含给定的 Object,它也会返回 false。
我的代码如下:
String [] transaction = dbConnection.getPendingTransaction(username);
if (!onlineConnection.getSentTransactionRequests().contains(transaction)) {
onlineConnection.getSentTransactionRequests().add(transaction);
String packet = "RTR" + "_" + transaction[0] + "_" + transaction[2] +
"_" + transaction[3] + "_" + transaction[4];
onlineConnection.send(packet);
}
我在两次迭代之间尝试了Thread.sleep(),所以ArrayList 没有成功加载。
【问题讨论】:
-
equals和hashcode显然不是你的朋友。 -
拜托,拜托,请将您的交易建模为适当的对象,而不是字符串数组。然后看上面@haylem 的评论。
标签: java arrays arraylist contains evaluation