Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Arraylist

    Ciao a tutti!
    Con la programmazione sono un pò arrugginito, per cui eccomi qui.

    Dunque: ho 2 arraylist (Arraylist<Tipo>), dove il costruttore di Tipo vuole 5 oggetti di tipo stringa, che vengono riempiti con gli elementi di 2 tabelle (con = struttura, ma record diversi) su 2 db differenti.

    Il primo arraylist ha 31 elementi il 2° 340...ora io dovrei comparare i 2 ed inserire in un 3° arraylist gli elementi DIVERSI. Per comparare gli elementi Tipo devo usare una delle stringhe del costruttore

    new Tipo(String id, String a, String b, String c, String d)

    Spero che abbiate capito il mio problema

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    qual'è il problema??
    dovrai fare una cosa tipo:

    for(int i=0;i<=lunghezzaSecondo;i++)
    {
    for(int j=0;j<=lunghezzaPrimo;j++)
    {
    if (primoarray[i].getid.compareTo(secondoArray[j].getid)!=0) {terzoarray.add(primoarray[i].getid);}
    }
    }

    nella classe Tipo dovrai avere i metodi getter per ottenere il contenuto dei vari oggetti
    getId

    l'ho scritto di getto magari ha bisogno di qualche aggiustamento

  3. #3
    ok, ho già fatto così ma poi mi viene un arraylist di 10480 elementi VVoVe:
    perchè mi vengono duplicati i valori...non capisco come mai, allora ho provato ad usare una TreeMap<key,value> dove per key ho usato l'id, ma i valori della mappa diventano 340:

    codice:
    private List<Record> accessRecords = new ArrayList<Record>();
    private List<Record> sqlServerRecords = new ArrayList<Record>();
    private List<Record> newRecords = new ArrayList<Record>();
                   oppure
    private Map<String, Record> newRecords = new TreeMap<String, Record>();
    ........
    .......
    
    public List<Record> arrayCompare(){
    		for(Record ra : accessRecords){
    			String accessLinguaOid = ra.getRif_lingua_oid();
    			for(Record rb : sqlServerRecords){
    				int compare = accessLinguaOid.compareTo(rb.getRif_lingua_oid());
    				System.out.println(compare);
    				if(compare != 0){
    					newRecords.add(new Record(ra.getRif_lingua_oid(), ra.getRif_lingua(), ra.getData_ult_mod(), ra.getUtente_ult_mod(), ra.getPostazione_ult_mod()));
    				}
    			}
    		}
    		System.out.println("newRecords size NEW: " + newRecords.size());
    		System.out.println("accessRecords size NEW: " + accessRecords.size());
    		return newRecords;
    	}
    
    
    
                    oppure
    
    
    public Map<String, Record> arrayCompare(){
    		for(Record ra : accessRecords){
    			String accessLinguaOid = ra.getRif_lingua_oid();
    			for(Record rb : sqlServerRecords){
    				boolean compare = accessLinguaOid.equalsIgnoreCase(rb.getRif_lingua_oid());
    				System.out.println(compare);
    				if(compare == false){
    					newRecords.put(accessLinguaOid,new Record(ra.getRif_lingua_oid(), ra.getRif_lingua(), ra.getData_ult_mod(), ra.getUtente_ult_mod(), ra.getPostazione_ult_mod()));
    				}
    			}
    		}
    		System.out.println("newRecords size NEW: " + newRecords.size());
    		System.out.println("accessRecords size NEW: " + accessRecords.size());
    		return newRecords;
    	}
    non riesco a capire dove sta l'errore...mi sto bloccando

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    quanti dovrebbero essere???
    può essere che devi implementare una funzioncina che sfoltisce l'array finale eliminando le occorrenze dei vari elementi

  5. #5
    dovrebbero essere "accessRecord-sqlServerRecord"...ho provato anche ad eliminarli (if(compare == true)), ma non ne vuole sapere...nonn li elimina

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    nn li elimina o nn ce ne sono da eliminare. la cosa più semplice è debuggare il tutto così vedi duplica e perche nn elimina

  7. #7
    Ho risolto mettendo al posto di tutti gli arraylist una sola TreeMap nella quale aggiungo i primi valori del db + numeroso, in seguito faccio una query sul secondo db e tolgo gli elementi che hanno la key della Map uguali.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.