sto eseguendo più iterazioni del tipo:modo rapido per estendere un insieme se sappiamo elementi sono unici
masterSet=masterSet.union(setA)
Come il set cresce la lunghezza del tempo necessario per eseguire queste operazioni è in crescita (come si farebbe aspetto, immagino).
Mi aspetto che il tempo venga occupato controllando se ciascun elemento di setA è già in masterSet?
La mia domanda è che se SO che masterSet non contiene già alcun elemento in setA posso farlo più rapidamente?
[UPDATE]
Dato che la questione è ancora attirando vista ho pensato di chiarire alcune delle cose dai commenti e le risposte qui sotto:
Quando l'iterazione se c'erano molte iterazioni dove sono sapevasetA
sarebbe distinto da masterSet
a causa di come è stato costruito (senza dover elaborare alcun controllo) ma poche iterazioni avevo bisogno del controllo di unicità.
mi chiedevo se ci fosse un modo per 'raccontare' la procedura masterSet.union()
di non perdere tempo con la uniquness controllare questa volta come so che questo è distinto da masterSet
basta aggiungere questi elementi di fiducia rapidamente l'affermazione del programmatore erano sicuramente distict . Perhpas chiama diverse ".unionWithDistinctSet()
" procedura o qualcosa del genere.
Penso che le risposte abbiano suggerito che questo non è possibile (e che le operazioni effettivamente impostate dovrebbero essere abbastanza veloci lo stesso) ma usare masterSet.update(setA)
invece di unione come il suo ancora un po 'più veloce.
Ho accettato la risposta più chiara lungo queste linee, risolto il problema che stavo avendo in quel momento e sono andato avanti con la mia vita, ma mi piacerebbe ancora sentire se il mio ipotizzato .unionWithDistinctSet()
potesse mai esistere?
Come fai a sapere che gli elementi non sono in 'masterSet'? Hai testato prima gli elementi? –
No - su alcune iterazioni So dal modo in cui setA viene generato che nessun elemento può essere nel masterSet –
Basta controllare; potrebbe esserci stata l'opportunità di aggiornare 'masterSet' direttamente invece di doverlo fare in seguito. –