WinstonSmith ha scritto:
Ho dimenticato una cosa... sono passato (su richiesta della traccia) da un arrayList ad una HashMap(chiave un Integer che determina la sua posizione, mentre valore l'oggetto Film). E' permesso aggiungere film finchè la dimensione della mappa è inferiore a 20, gestisco il tutto con un ciclo while ed una costante "MAX".
Onestamente è un po' "bruttino" ma se è richiesto così ...... vabbè, ok.
WinstonSmith ha scritto:
nel caso in cui il film NON sia un horror si potrà scegliere liberamente il posto
nel caso in cui il posto scelto sia occupato il sistema dovrà mostrare un messaggio e permettere all’utente di riprovare
nel caso sia un horror sarà il sistema a assegnargli il primo posto libero nell’ultima parte della mappa, se c’è un posto libero in quella sezione, altrimenti lancia un messaggio di errore
il sistema deve permettere di inserire un film nel primo posto libero disponibile tra il primo 90% dei posti se non è horror, tra l’ultimo se lo è
Ok, chiaro.
WinstonSmith ha scritto:
quindi un horror finirà semplicemente smepre nel posto numero 19 o 20, sia se si scegli manualmente sia se verrà scelto dall'utente la posizione?
Domanda: c'è scritto espressamente che è l'UTENTE a poter scegliere una posizione? Credo (e spererei) di no .. Quindi sarebbe solo la "logica" del tuo aggiungiFilm(Film) che "sa" come determinare la posizione.
Nel caso di "horror" se MAX è 20, appunto il 10% sono solo
2 posizioni. Quindi aggiungiFilm dovrebbe ragionare così per un horror:
- è libero il posto 19? Sì ---> mette nel 19
- altrimenti è libero il posto 20? Sì ---> mette nel 20
- altrimenti segnalazione errore
Stop, tutto qui.
WinstonSmith ha scritto:
E se non lo è va solo nei primi 18? non c'è scritto da nessuna parte che non si possa avere una collezione senza horror, questo mi confonde...
Questa è un'altra questione (da valutare/verificare). Quel 10% dello spazio è ESCLUSIVO per gli horror oppure no?
Ma alla fin fine la logica di inserimento cambia relativamente poco. Se NON è horror, presumo che sia sufficiente cercare il primo posto "libero".
Quindi per quelli NON horror:
- se si intende che il 10% è esclusivo per gli horror, allora la ricerca di un posto per un non-horror si fermerà al posto 18.
- se si intende che il 10% NON è esclusivo per gli horror, allora la ricerca di un posto per un non-horror si fermerà al posto 20.
E la logica che ho detto prima per gli horror continua a funzionare, cioè se c'è posto bene, altrimenti errore.