|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Oct 2009
Messaggi: 239
|
[JAVA] merge di due arraylist particolare
Ho creato un "ciclo" che dati due arraylist controlla i primi tre elementi dell'array, degli arraylist iterati, e se questi sono uguali un terzo arraylist prende il risultato del secondo, altrimenti il risultato del primo. Naturalmente il primo arraylist è popolato con dimensione >= al secondo. In parole povere...
Codice:
final List<List<?>> risultati1 = new ArrayList<List<?>>();
final List<List<?>> risultati2 = new ArrayList<List<?>>();
final List<List<?>> risultati_totali = new ArrayList<List<?>>();
.........
int i = 0;
int j = 0;
if (!risultati2.isEmpty()){
while (i<risultati1.size()){
while(j<risultati2.size()){
if (risultati1.get(i).get(0).equals(risultati2.get(j).get(0))&&risultati1.get(i).get(1).equals(risultati2.get(j).get(1))&&risultati1.get(i).get(2).equals(risultati2.get(j).get(2))){
//se i primi tre elementi sono uguali prendo risultati2
risultati_totali.add(risultati2.get(j));
i+=1;
j+=1;
}else{
//se no inserisco i risultati1 (risultati1 e risultati2 sono popolati in maniera ordinata rispetto ai 3 elementi controllati)
risultati_totali.add(risultati1.get(i));
i+=1;
}
}
//non ci sono piu elementi in risultati2
risultati_totali.add(risultati1.get(i));
i=i+1;
}
metodo(risultati_totali);
}else if (risultati2.isEmpty()){
//risultati2 è vuoto
metodo(risultati1);
}
Ultima modifica di miao84 : 31-05-2011 alle 12:34. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Bisognerebbe vedere il testo dell'esercizio e il codice completo perché l'orientamento agli oggetti non è quantità o una qualità ma un punto di vista: in senso OO il tuo codice ha un certo significato. E' poi possibile che questo significato corrisponda o non corrisponda a quello che avrebbe dovuto avere.
L'unico intoppo che vedo è che il codice incollato include una precondizione implicita (che le liste di valori negli arraylist abbiano almeno tre elementi). Se questa precondizione non è controllata da qualche altra parte allora il programma è soggetto al verificarsi di un'eccezione (IndexOutOfBoundsException).
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Oct 2009
Messaggi: 239
|
il codice va bene, non andrà mai in eccezione poichè risultati1 sarà sempre popolato da almeno un elemento contenente 5 valori (contiene risultati di una query che "deve" restituire risultati di default
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:30.



















