Torna indietro   Hardware Upgrade Forum > Software > Programmazione

NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
Nelle ultime settimane abbiamo provato tre delle proposte top di gamma di NZXT nelle categorie case, dissipatori e ventole. Rispettivamente, parliamo dell'H9 Flow RGB+, Kraken Elite 420 e F140X. Si tratta, chiaramente, di prodotti di fascia alta che si rivolgono agli utenti DIY che desiderano il massimo per la propria build. Tuttavia, mentre i primi due dispositivi mantengono questa direzione, le ventole purtroppo hanno mostrato qualche tallone d'Achille di troppo
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN è il primo monitor gaming con pannello QD-OLED Gen 5 a layout RGB Stripe Pixel e 360 Hz su 34 pollici: lo abbiamo misurato con sonde colorimetriche e NVIDIA LDAT. Ecco tutti i dati
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Nothing Phone (4a) Pro cambia pelle: l'alluminio unibody sostituisce la trasparenza integrale, portando una solidità inedita. Sotto il cofano troviamo uno Snapdragon 7 Gen 4 che spinge forte, mentre il display è quasi da top dig amma. Con un teleobiettivo 3.5x e la Glyph Matrix evoluta, è la prova di maturità di Carl Pei. C'è qualche compromesso, ma a 499EUR la sostanza hardware e la sua unicità lo rendono un buon "flagship killer" in salsa 2026
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 31-05-2011, 11: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 11:34.
miao84 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2011, 13: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, 13: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


NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abb...
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz ASUS ROG Swift OLED PG34WCDN recensione: il prim...
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico Recensione Nothing Phone (4a) Pro: finalmente in...
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
CAS Space ha lanciato per la prima volta...
Qualcomm boccia Samsung: i futuri chip S...
Il razzo spaziale cinese Tianlong-3 di S...
Samsung cambia i piani: aumenta la produ...
TSMC non si ferma più: fatturato ...
Xiaomi porta in Italia il nuovo Redmi A7...
Mercato smartphone: Q1 2026 positivo (+1...
YouTube punta sull'AI: gli utenti potran...
Il prossimo chip a 2 nm di Samsung punte...
Due smartphone REDMAGIC sono stati rimos...
La beta della One UI 8.5 è ora di...
Addio al Pannello di Controllo di Window...
Il chip N1 di NVIDIA per i laptop del fu...
YouTube Premium costerà di pi&ugr...
I nuovi Samsung Galaxy A57 5G e A37 5G a...
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: 21:41.


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