Java.util.ConcurrentModificationException

2 respostas
P

Folks,

uma duvida porque qdo uso somente

LinkedHashMap m = new LinkedHashMap();

execute sem erro mas quando coloco a linha


Map m = new Cache(max);
da erro

[code]

java.util.ConcurrentModificationException

alguem pode me ajudar ....


abs

public class Cache extends java.util.LinkedHashMap {
// poderia ser final:
protected int maxsize;

public Cache(int maxsize) {
super(maxsize, 0.75f, true);
this.maxsize = maxsize;
}

/**
* Faz com que o elemento mais velho
* seja removido no caso do tamanho ser atingido
*/
protected boolean removeEldestEntry() {
return (this.size() > maxsize);
}

public static void main (String[] args){
int max = 5;
Integer codigo=0;
//Map m = new Cache(max);
LinkedHashMap m = new LinkedHashMap();

m.put("98", "B98");
m.put("100", "P");
m.put("101", "P1");
m.put("1", "A1");
m.put("2", "B1");
m.put("3", "C1");
m.put("99", "B100");
m.put("98", "B101");
m.put("98", "B98");


//
Iterator inovo = m.keySet().iterator();
while(inovo.hasNext()){

String chave = (String)inovo.next();
System.out.println("chave="+chave);

String conteudo= (String) m.get(chave) ;

System.out.println(" conteudo="+conteudo);
System.out.println("--------------------------------");
}
//

}
}

[/code]

2 Respostas

ViniGodoy

Acho que teve um problema de formatação no seu tópico. Pode ajustar?

P

Folks,

uma duvida porque qdo uso somente

LinkedHashMap m = new LinkedHashMap();

execute sem erro mas quando coloco a linha

[code]

	    	 Map m = new Cache(max);

da erro

java.util.ConcurrentModificationException

alguem pode me ajudar ....

abs

public class Cache extends java.util.LinkedHashMap {
	     // poderia ser final:
	     protected int maxsize;
	 
	     public Cache(int maxsize) {
	         super(maxsize, 0.75f, true);
	         this.maxsize = maxsize;
	     }
	 
	     /**
	      * Faz com que o elemento mais velho
	      * seja removido no caso do tamanho ser atingido
	      */
	     protected boolean removeEldestEntry() {
	         return (this.size() > maxsize);
	     }
	     
	     public  static void main (String[] args){
	    	 int max = 5;
	    	 Integer codigo=0;
	    	 //Map m = new Cache(max);
	    	 LinkedHashMap m = new LinkedHashMap();
	    	 
	    	 m.put("98",  "B98");
	    	 m.put("100", "P");
	    	 m.put("101", "P1");
	    	 m.put("1",   "A1");
	    	 m.put("2",   "B1");
	    	 m.put("3",   "C1");
	    	 m.put("99",  "B100");
	    	 m.put("98",  "B101");
	    	 m.put("98",  "B98");
	    	 
	    	 
	    	 //
		    	Iterator inovo = m.keySet().iterator();
		    	 while(inovo.hasNext()){
		    		 
		    		 String chave = (String)inovo.next();
		    		 System.out.println("chave="+chave);
		    		 
		    		 String  conteudo= (String) m.get(chave) ;
		    		
		    		 System.out.println("    conteudo="+conteudo);
		    		 System.out.println("--------------------------------");
		    	 }
	    	 //


	     }
}
Criado 15 de agosto de 2008
Ultima resposta 15 de ago. de 2008
Respostas 2
Participantes 2