Salve ragazzi... per caso qualcuno mi saprebbe spiegare questo? .. io oramai sono davvero in panne... vi confesso ke questo problema proprio non lo so gestire...
in sostanza effettuo dim=67000 inserimenti in un hashmap, e subito dopo, simulando che MAP sia una matrice quadrata, conto quanti valori non nulli contiene...codice:public static void main(String[] arg){ HashMap<Integer,Float> MAP2 =new HashMap<Integer,Float>(); int dim= 67000; for(int i=0;i<dim;i++){ int code = makeHash(i,i,dim); MAP2.put(code, 4.5f); } int cont=0; for(int i=0;i<dim;i++){ for(int j=0;j<dim;j++){ int code = makeHash(i,j,dim); if(MAP2.containsKey(code)) cont++; } } System.out.println(" fatto"+cont); } static int makeHash(int i, int j,int n){ int code=(i*n)+j; return code; }
e .. attenzione attenzione...
il risultato è...
fatto 72792
questo "odioso" fenomeno non si presenta per valori minori di dim , ma peggiora per valori più alti !!!
come devo fare?

Rispondi quotando

