|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
[JAVA] Fare il confronto interno tra le List
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 ![]()
__________________
My gaming placement |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
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 |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
immaginavo, comunque nn sono nemmeno ordinate.
__________________
My gaming placement |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jun 2001
Città: Alessandria (provincia)
Messaggi: 4772
|
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. |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
non è fattibile, le due liste contengono solo stringhe, e nemmeno diverse, alcune ripetute + volte anche.......cmq l'ho fatto in "vecchio stile". Grazie
__________________
My gaming placement |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:13.