Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR ha finalmente lanciato il suo nuovo flagship: Magic 8 Pro. Lo abbiamo provato a fondo in queste settimane e ve lo raccontiamo nella nostra recensione completa. HONOR rimane fedele alle linee della versione precedente, aggiungendo però un nuovo tasto dedicato all'AI. Ma è al suo interno che c'è la vera rivoluzione grazie al nuovo Snapdragon 8 Elite Gen 5 e alla nuova MagicOS 10
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Le webcam Insta360 Link 2 Pro e Link 2C Pro sono una proposta di fascia alta per chi cerca qualità 4K e tracciamento automatico del soggetto senza ricorrere a configurazioni complesse. Entrambi i modelli condividono sensore, ottiche e funzionalità audio avanzate, differenziandosi per il sistema di tracciamento: gimbal a due assi sul modello Link 2 Pro, soluzione digitale sul 2C Pro
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70 porta il concetto di smartphone ultrasottile su un terreno più concreto e accessibile: abbina uno spessore sotto i 6 mm a una batteria di capacità relativamente elevata, un display pOLED da 6,7 pollici e un comparto fotografico triplo da 50 MP. Non punta ai record di potenza, ma si configura come alternativa più pragmatica rispetto ai modelli sottili più costosi di Samsung e Apple
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 31-05-2011, 12:24   #1
miao84
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);
      }
Mi è stato chiesto di rifarlo in maniera "object oriented" (credo utilizzando meglio generics, mappe e quant'altro)...qualche suggerimento??

Ultima modifica di miao84 : 31-05-2011 alle 12:34.
miao84 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2011, 14:39   #2
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
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!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2011, 14:58   #3
miao84
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 ). Al massimo aggiungo un controllo !isEmpty() e se sono vuoti entrambi gli arraylist viene segnalato. E' risultati2 che contiene valori "calcolati" dal db e quindi se presenti devono avere la priorità su quelli di default. Diciamo che la mia soluzione è molto "algoritmica", magari ci sono strutture dati e metodi di classe che "aiutano" ad effettuare il controllo e rendono il codice "meno standard"
miao84 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
Le novità ASUS per il 2026 nel settore dei PC desktop Le novità ASUS per il 2026 nel settore de...
Samsung conferma l'arrivo di tre variant...
Sottile, veloce e con un'ottima autonomi...
Il top di gamma compatto di OnePlus &egr...
Modificare l'indirizzo Gmail è finalment...
Perché le GeForce RTX con pi&ugra...
Più tempo online non equivale a più disa...
Amazon Weekend: iPhone 17 Pro, robot asp...
TV OLED 65'' top di gamma al 50%: 144Hz,...
Londra si prepara al terremoto 'intellig...
Scope elettriche in offerta su Amazon: f...
iPhone 17 Pro a un nuovo minimo storico ...
DJI Mini 4 Pro Fly More Combo a 859€ su ...
Roborock in offerta su Amazon: QV 35A e ...
Crisi della RAM: Intel rassicura sul mer...
Dreame taglia i prezzi su Amazon: L40 Ul...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 06:30.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v