ovo sa GregorianCalendar je upalilo,napravila sam dosta toga,medjutim sad mi se desava nesto krajnje neverovatno- pravila sam neku klasu ListaParova koja ima privatno polje tipa HashMap ,u koje ubacujem sifre parova i Par-ove,e sad posto je domaci neka pojednostavljena verzija kladionice,meni svaki par treba da ima vreme utakmice. a da bi zatvorila tiket na uplatnom mestu,ja prvo moram da izbacim parove cije su utakmice vec pocele, i sad pogledajte ovo <nadam se da me niko nece ubiti ,ili nesto sl,zbog ovoliko teksta :>
Code:
import java.util.*;
public class ListaParova {
private HashMap parovi;
ListaParova(){ parovi=new HashMap(); }
...
void brisiPar(String sifP){synchronized(parovi) {parovi.remove(sifP);}}
void ukloniLose(Date vremeUplate) {
synchronized(parovi) {
for (Iterator i=parovi.entrySet().iterator(); i.hasNext(); ) {
Map.Entry e = (Map.Entry) i.next();
Par tempPar=(Par) e.getValue();
String sifP=(String) e.getKey();
System.out.println(sifP + ": " +tempPar);
if (tempPar.getVremeUtakmice().before(vremeUplate))
//brisiPar(sifP);
parovi.remove(sifP);
}
}
}
public void printAll() { synchronized(parovi) {
for (Iterator i=parovi.entrySet().iterator(); i.hasNext(); ) {
Map.Entry e = (Map.Entry) i.next();
System.out.println(e.getKey() + " : " + e.getValue()); }}}
public static void main(String[] args) {
ListaParova ps=new ListaParova();
Par prvi=new Par("Juventus","Lacio",2003,4,20,17,20,1.65,4.5,3.25);
ps.ubaci(prvi); ps.dohvati("PAR1");
Par drugi=new Par("Madrid","Crvena Zvezda",2003,9,15,15,30,1.7,2.3,4.0);
ps.ubaci(drugi); ps.dohvati("PAR2");
Par treci=new Par("Hamarbi","Landskrona",2003,8,15,20,20,1.35,4.0,3.0);
ps.ubaci(treci); ps.dohvati("PAR3");
ps.printAll();
Date trenutnoVreme=new Date();
ps.ukloniLose(trenutnoVreme);
ps.printAll();
}
}
e sad ovo se kompajlira oki ako treci par stavim da utakmica pocinje npr 17.08.2003 sve radi super,obrise mi samo prvi par i fino..ali ako npr.stavim da treci par poinje danas 15.08.2003 onda dobijam ConccurentModificationException (?!) na metodi ukloniLose...
da li neko ima ideju o cemu se radi, a inace malo mi je sumnjiva i ova ukloniLose
da li smem da iteriram kroz kolekciju i da brisem one Par-ove koji mi ne odgovaraju u jednom ovakvom bloku,ili ipak treba nesto izmeniti?