|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
[JAVA] Vari ordinamenti all'interno di una lista
allora io ho una lista unica che contiene tre tipologie di oggetti
Codice:
- {obj1.tipo1}
- {obj2.tipo1}
- {obj3.tipo2}
- {obj4.tipo2}
- {obj5.tipo1}
- {obj6.tipo1}
al momento ho pensato, mi spezzo la lista in x liste (in questo caso in due liste), una per tipologia, le ordino singolarmente, e poi le riunisco. e fino a qui niente di complicato. il problema sorge nell'ordinamento, perchè non devo ordinarle in modo classico, ma devo ordinarle in base ad un file esterno che mi dà il volume di vendita. inoltre il volume di vendita non è su tutti i prodotti, ma su un campione di essi. ad esempio, la mia lista è: Codice:
{nome, prezzo, categoria}
- {tachipirina, 5.00, A}
- {moment, 2.00, A}
- {paracetamolo,15.00, B }
- {aspirina, 3.00, B }
- {sinflex, 4.00, C}
- {moment molly, 5.00, C}
Codice:
{nome, posizione}
- {moment, 1}
- {tachipirina, 2}
- {paracetamolo,3}
- {moment molly,4}
ad esempio, la mia lista è: Codice:
- {moment, 2.00, A}
- {tachipirina, 5.00, A}
- {paracetamolo,15.00, B }
- {aspirina, 3.00, B }
- {moment molly, 5.00, C}
- {sinflex, 4.00, C}
__________________
My gaming placement Ultima modifica di franksisca : 06-11-2013 alle 10:54. Motivo: perchè B } senza lo spazio me lo trasforma in *** ???? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2786
|
Secondo me conviene usare una sola lista e su di essa applicare due ordinamenti. Usando il tuo esempio, la lista iniziale è:
{nome, prezzo, categoria} - {tachipirina, 5.00, A} - {moment, 2.00, A} - {paracetamolo,15.00, B } - {aspirina, 3.00, B } - {sinflex, 4.00, C} - {moment molly, 5.00, C} inoltre con il file dei volumi di vendita ti crei una mappa nome -> posizione A questo punto il primo ordinamento che applichi è sul lookup nome -> posizione, dove se il lookup esiste usi quel valore, altrimenti Integer.MAX_VALUE (oppure metti prima quello che possiede un lookup e se entrambi non hanno un lookup il primo viene prima del secondo, cioè non ne cambi l'ordine). Esempio dopo il primo ordinamento: - {moment, 2.00, A} - {tachipirina, 5.00, A} - {paracetamolo,15.00, B } - {moment molly, 5.00, C} - {aspirina, 3.00, B } - {sinflex, 4.00, C} Il secondo ordinamento è sulla categoria. Esempio dopo il secondo ordinamento: - {moment, 2.00, A} - {tachipirina, 5.00, A} - {paracetamolo,15.00, B } - {aspirina, 3.00, B } - {moment molly, 5.00, C} - {sinflex, 4.00, C} Ovviamento almeno il secondo ordinamento dev'essere stabile |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Quote:
__________________
My gaming placement |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2786
|
Sì, in pratica applichi tutti gli ordinamenti dal più specifico al più generale, quindi se ho capito bene:
prezzo -> volumi di vendita -> categoria |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
ok, proverò, perchè mi manca qualche passaggio che forse non ho spiegato io, comunque grazie per l'aiuto
__________________
My gaming placement |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:23.



















