Ho un oggetto del percorso di gara che è un oggetto ArrayList che contiene oggetti Horse. Ho scelto ArrayList perché è facile da implementare. Tuttavia, lo svantaggio di usare un ArrayList è che non posso facilmente tenere traccia delle posizioni di ogni cavallo senza andare ripetutamente in giro attraverso la collezione. Ad esempio, se voglio trovare 2 cavalli che si trovano entro una distanza X di distanza l'uno dall'altro, dovrei ripetere iterando attraverso n^2
volte.Che cos'è una buona raccolta di dati per rappresentare una corsa di cavalli?
Esiste una strategia migliore per farlo?
MODIFICA: Molte richieste per essere specifiche sul mio modello di gara, quindi elaborerò qui.
Il modello viene aggiornato ogni iterazione. Quindi ogni cavallo ha la sua velocità, accelerazione, distanza percorsa, ecc. E ogni iterazione attraverso la raccolta aggiorna questi valori. È necessario che, se un cavallo è vicino a un altro, esso rallenti, cosa che ho intenzione di fare confrontando i valori della distanza percorsa.
Potete trovare tali coppie di cavalli ordinandone le posizioni e iterando, che è 'O (n log n)'. –
essere specifici: 1. devi interrogare e modificare i valori in modo casuale? o 2. (ripetutamente) {aggiorni i valori quindi esegui le query}? caso 1. -> albero con rimuovi e reinserisci, caso 2. -> array: ripeti {aggiorna valori, ordina, esegui query} – BeyelerStudios
c'è anche un terzo caso: i valori (cioè le posizioni di gara) possono saltare saltuariamente? o possono solo muoversi su e giù? in questo terzo caso si desidera una lista di scansione (che è una matrice ordinata) e spostandosi verso l'alto o verso il basso equivale a scambiare le posizioni nell'array. – BeyelerStudios