データベースから情報を収集する通常のデータベース呼び出しがあります。これらの情報を使用してオブジェクトを作成します(CallQueue
)これらのオブジェクトはリストに追加され、リストが返されます。
突然、複製を作成したために元のコードが意図したとおりに機能しないことに気付きました。そのため、複製が作成されていることを無効にしようとしています。しかし問題がある!
リストをループして、オブジェクトがすでに作成されているかどうかを確認できません。
これが私のコードです:
while (query.next()) {
if (!queues.isEmpty()) {
/*This gives the Execption->*/
for (CallQueue callQueue : queues) {
if (callQueue.getType().equals(query.getString("KØ"))) {
double decimalTime = query.getDouble("TID");
int hourOfDay = (int)Math.round(24 * decimalTime);
int callAmount = query.getInteger("ANTAL_KALD");
if (hourOfDay > 19) {
hourOfDay = 19;
}
callQueue.addCallsByTime(hourOfDay, callAmount);
} else {
String queueName = query.getString("Kø");
if (!queueName.equalsIgnoreCase("PrivatOverflow")) {
CallQueue cq = new CallQueue(query.getString("KØ"));
double decimalTime = query.getDouble("TID");
int hourOfDay = (int)Math.round(24 * decimalTime);
int callAmount = query.getInteger("ANTAL_KALD");
if (hourOfDay > 19) {
hourOfDay = 19;
}
cq.addCallsByTime(hourOfDay, callAmount);
queues.add(cq);
}
}
}
} else {
String queueName = query.getString("Kø");
if (!queueName.equalsIgnoreCase("PrivatOverflow")) {
CallQueue cq = new CallQueue(query.getString("KØ"));
double decimalTime = query.getDouble("TID");
int hourOfDay = (int)Math.round(24 * decimalTime);
int callAmount = query.getInteger("ANTAL_KALD");
if (hourOfDay > 19) {
hourOfDay = 19;
}
cq.addCallsByTime(hourOfDay, callAmount);
queues.add(cq);
}
}
}
for (CallQueue callQueue : queues) {
System.out.println(callQueue.getType());
}
query.Close();
return queues;
私がこれから得る実行は次のとおりです:
Caused by: java.util.ConcurrentModificationException
iveはConcurrentModificationException で実行を検索しようとしました
誰かが私がこの問題を解決するのを手伝ってもらえますか?