View Full Version : [JAVA] Fare il confronto interno tra le List
franksisca
02-03-2006, 10:37
Ragazzi, ho due List, voglio sapere gli oggetti comuni tra la List lista1 e la List lista2.
Spero di essere stato chiaro e aspetto vostri suggerimenti.
P.S.: naturalmente mi scoccia controllarli 1x1;)
sottovento
02-03-2006, 10:55
Non mi sembra ci siano grandi alternative.
Le liste sono ordinate? Se non hai altre info sulle liste, prepara l'algoritmo n^2 e rassegnati....
High Flying
Sottovento
franksisca
02-03-2006, 15:19
immaginavo, comunque nn sono nemmeno ordinate.
Se gli oggetti sono unici, ovvero un oggetto non è presente più di una volta in almeno una delle due list, potresti riversare il contenuto (ad es. della lista 1) in una hashtable (operazione che fai in modo sequenziale) e poi scorrere l'altra (lista 2) controllando se ogni oggetto che trovi è presente nella hashtable.
In questo modo non ti poni il problema dell'ottimizzazione, scorri entrambe una sola volta e usi il semplice metodo containsKey per verificare se è presente.
Se puoi vuoi vedere anche cosa non c'è in comune, allora dovresti togliere ogni volta dalla hashtable e dalla lista 2 (della quale a questo punto ti conviene fare un clone) il valore trovato, in modo che dall'enumeration di ciò che ti rimane nella hastable, ottieni quello che c'è nella 1 e non nella 2, mentre ciò che resta del clone della 2 contiene già solo quello che è nella 2 e non nella 1.
franksisca
02-03-2006, 16:35
non è fattibile, le due liste contengono solo stringhe, e nemmeno diverse, alcune ripetute + volte anche.......cmq l'ho fatto in "vecchio stile". Grazie
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.