Torna indietro   Hardware Upgrade Forum > Software > Programmazione

L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
Abbiamo intervistato Sumit Dhawan, CEO di Proofpoint, per capire come stia cambiando il mondo della sicurezza con l'avvento dell'intelligenza artificiale e con il ritmo sempre più serrato a cui vengono trovate vulnerabilità nel software. Un problema significativo, che richiederà del tempo per essere risolto (o quantomeno arginato)
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
La parola d'ordine al Nextcloud Summit 2026, che si è tenuto a Monaco, è stata "sovranità". Non come è spesso usato questo termine in politica ma, al contrario, come capacità positiva di decidere il proprio destino tecnologico, con modalità collaborative e aperte. L'Europa dice già molto nel mondo open source, che viene visto come mezzo per ottenere la tanto agognata autonomia digitale
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete implementa due bracci estensibili, per spazzola e moccio, che si spingono ben oltre quanto visto sino ad oggi permettendo una pulizia di casa ancor più capillare e precisa
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-03-2006, 18:15   #1
raniero
Member
 
Iscritto dal: Sep 2005
Messaggi: 37
[java] Confronto tra due ArrayList

Ciao, ho implementato un metodo che dovrebbe confrontare uno ad uno gli elementi di due arraylist , e ritorna true se gli elementi della seconda sono contenuti nella prima. non sono sicuro dell'esattezza del metodo, vi posto il codice.

Codice:
public boolean disponibilita(ArrayList lista2){    
    
  boolean t=false;
      
    for (int i = 0; i < lista1.size(); i++){	   
      Attrezzo attrezzocass = (Attrezzo) lista1.get(i);

        for(int j = 0; j < lista2.size(); j++){
           String attrezzocheck = (String)listaAttrezzicheck.get(j);
	
  	if (attrezzocass.equals(attrezzocheck)){
               t=true;
             }   
         } 

      } 
      
   return t;
 }
raniero è offline   Rispondi citando il messaggio o parte di esso
Old 11-03-2006, 18:36   #2
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Nella firma del metodo ti sei dimenticato lista1, in ogni caso così non va bene perchè basta che uno degli elementi di lista2 sia uguale a uno di lista1 perchè il metodo ritorni true
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2006, 09:06   #3
crick_pitomba
Member
 
Iscritto dal: Oct 1999
Messaggi: 111
Quote:
Originariamente inviato da kingv
Nella firma del metodo ti sei dimenticato lista1, in ogni caso così non va bene perchè basta che uno degli elementi di lista2 sia uguale a uno di lista1 perchè il metodo ritorni true
più precisamente il codice che hai scritto restituisce true se l'ultimo elemento di lista1 è uguale all'ultimo elemento di lista2, false altrimenti.

Penso che il codice di cui hai bisogno dovrebbe essere questo

Codice:
trovato=false;
i=0;

while ((i<lista2.size())){
   /**
     * prendi un elemento della seconda lista: vuoi controllare che la prima      
     * contenga quelli della seconda. Quindi immagino che la prima possa
     * contenere elementi non contenuti nella seconda, ma non deve essere
     * vero il viceversa
     */
   String attrezzocheck = (String)listaAttrezzicheck.get(i);
   //confronta tutti gli elementi della prima con l'elemento corrente
   j=0;
   while(j<lista1.size()) {
      Attrezzo attrezzocass = (Attrezzo) lista1.get(j);
      trovato=attrezzocass.equals(attrezzocheck));
      /**
       * una volta che hai trovato l'elemento della seconda nella prima
       * è inutile continuare a cercare nella prima... puoi cominciare a 
       * controllare l'elemento successivo della seconda
      if (trovato) continue; 
      j++
   }
   /**
    * a questo punto se non hai trovato l'elemento cercato durante il 
    * ciclo precedente è inutile continuare a cercare perchè sicuramente
    * un elemento della seconda lista non è presente nella prima
    * quindi puoi uscire dalla funzione restituendo false;
    */
   if(!trovato) return trovato;
   i++
}
/**
 * se sei arrivato qui in pratica non sei mai uscito in precedenza e quindi
 * trovato deve essere rimasto true per tutto il corso della funzione
 * in questo caso restituisci true 
 */
return trovato;
crick_pitomba è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2006, 09:15   #4
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Quote:
Originariamente inviato da crick_pitomba
più precisamente il codice che hai scritto restituisce true se l'ultimo elemento di lista1 è uguale all'ultimo elemento di lista2, false altrimenti.

direi di no, basta che uno qualsiasi degli elementi di lista2 sia uguale a uno di lista1 perche' la variabile t venga messa a true e non ci sono istruzioni che ne possano modificare ulteriormente il valore prima del return
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2006, 09:18   #5
crick_pitomba
Member
 
Iscritto dal: Oct 1999
Messaggi: 111
Quote:
Originariamente inviato da kingv
direi di no, basta che uno qualsiasi degli elementi di lista2 sia uguale a uno di lista1 perche' la variabile t venga messa a true e non ci sono istruzioni che ne possano modificare ulteriormente il valore prima del return
hai ragione... evidentemente ero ancora un po' rincoglionito dalla mancanza di sonno :P
crick_pitomba è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2006, 23:37   #6
raniero
Member
 
Iscritto dal: Sep 2005
Messaggi: 37
il metodo che mi avete suggerito non funziona, non arriva mai al return finale...
raniero è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2006, 11:34   #7
raniero
Member
 
Iscritto dal: Sep 2005
Messaggi: 37
ho implementato questa soluzione, che ne dite?

Codice:
public synchronized boolean disponibilita (ArrayList lista2) {         
 

boolean trovato=false;
int i =0;
int j=0;



  while (i<lista2.size() && j<lista1.size()){

    String attrezzocheck = (String)lista2.get(i);
    Attrezzo attrezzocass = (Attrezzo) lista1.get(j);
     
     if (attrezzocass.equals(attrezzocheck)){
          trovato=true;
   
      i++;
      j=0;
      }
        else { 
          j++;}
     
 
     if(!trovato && j==lista1.size()) {
      
       trovato=false;
        }  else if (trovato && i==lista2.size()) {
             
       
          trovato=  true;
              }
  }

 return trovato;


}
raniero è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2006, 19:24   #8
crick_pitomba
Member
 
Iscritto dal: Oct 1999
Messaggi: 111
Quote:
Originariamente inviato da raniero
il metodo che mi avete suggerito non funziona, non arriva mai al return finale...
scusa... ho fatto un errore di distrazione :P
Codice:
 while(j<lista1.size()) {
      Attrezzo attrezzocass = (Attrezzo) lista1.get(j);
      trovato=attrezzocass.equals(attrezzocheck));
      /**
       * una volta che hai trovato l'elemento della seconda nella prima
       * è inutile continuare a cercare nella prima... puoi cominciare a 
       * controllare l'elemento successivo della seconda
      if (trovato) break; 
      j++
   }
deve essere break e non continue altrimenti cicla all'infinito ....
crick_pitomba è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint L'IA cambia tutte le regole della sicurezza tra ...
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026 L'Europa conta nella tecnologia e può ess...
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più Dreame X60 Pro Ultra Complete: i bracci si esten...
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati TCL 65C8L, la recensione del SQD-Mini LED da 440...
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro MSI Maestro 500 Wireless: ANC e 90 ore di autono...
Xiaomi 18 punta ad una batteria da 7.200...
Arlo Essential 3 XL: 3 telecamere WiFi 2...
L'IA cinese spaventa gli USA: GLM-5.2 su...
Netflix cambia le regole degli account: ...
Repository GitHub 'puliti' possono ingan...
Sony cancella 551 film e serie TV dal Pl...
La spesa per i videogiochi con supporto ...
Top 12 offerte Amazon: al 2, 4 e 5 le no...
Samsung Messaggi: addio definitivo fissa...
MSI Modern a 389€ su Amazon: il PC tutto...
Apple inizia a vendere il MacBook Neo ri...
Smart TV Haier 45'' e QLED 4K a 349€ con...
Ricercatore anonimo rilascia decine di v...
Vivo X Fold 6 è ufficiale e arriverà anc...
JaiLIP: la tecnica che bypassa i guardra...
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: 11:39.


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