Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22

Discussione: confronto fra celle

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    189

    confronto fra celle

    ciao ragazzi, vorrei chiedervi un aiuto....
    in pratica devo fare un controllo in una tabella di elementi....in pratica se 2 celle hanno lo stesso valore ,cancello il contenuto della seconda cella.., in modo da non avere 2 celle con lo stesso valore...es

    1 pippo
    2 paolo
    3 pietro
    4 pippo

    devo cancellare la cella con id 4.....
    io pensavo con un ciclo for di scorrrere il vettore e di effettuare una condizione ovvero
    if ( vettore[i]== vettore[i+1]) allora cancello il vettore[i+1]
    come posso implementare in java un problema del genere?? grazie mille

  2. #2
    Per prima cosa è necessario mettersi d'accordo sulla lingua da utilizzara per comunicare, infatti è importante che tutti parlino lo stesso linguaggio. Cosa intendi per cella? Un campo di una tabella di un DB, una cella di una JTable, oppure un elemento di un vettore come da esempio da te fornito?
    In caso tu ti riferisca ad un vettore puoi provare ad utilizzare un metodo del genere:

    codice:
    public Vector removeDuplicate(Vector lista) {
    	return new Vector(new TreeSet(lista));
    }
    Piuttosto che effettuare tutti i controlli manualmente puoi utilizzare la classe TreeSet che automaticamente elimina i doppioni. L'unica cosa è che essa ordina anche gli elementi alfabeticamente, ma se questa cosa non ti crea problemi il metodo precedente dovrebbe andare bene.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    189
    e' un campo di una tabella ,di un database access....

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    116
    Attenzione,
    così come l'hai fatto cancella la cella solo se il valore di quella dopo è uguale.
    Per fare un confronto di ogni valore con ogni altro valore ti suggerisco di fare due cicli for annidati, di cui il secondo parte da i+1,(così non fai controlli doppi)

    In codice sarebbe:

    for (int i=0;i<(numeroElementiNelVettore-1);i++) {
    for(int j=i+1;j<numeroElementiDelVettore;j++) {
    if (vettore(i)==vettore(j)) {
    'cancella vettore
    } 'chiudo l'if
    }'chiudo il primo for
    'comprimo il vettore in modo da non avere spazi vuoti al suo interno
    'aggiorno numeroElementiDelVettore
    }'finisce il ciclo


    edit: non avevo ancora letto i commenti prima.. se usi un vettore cmq questo metodo funziona

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    189
    verce puoi scrivere meglio il codice x favore? cosi' non riesco a capire...cosa intendi con comprimo il vettore...grazie mille

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    116
    Ti faccio un esempio col tuo vettore:
    Voglio cancellare i nomi uguali:

    1)pippo
    2)paolo
    3)pietro
    4)pippo
    5)pluto (aggiunto da me per farti capire meglio ^^ )

    ad un certo punto vedo che l'elemento 1 e l'elemento 4 sono uguali, e dunque voglio cancellare il record 4 ma se semplicemente metto vuoto l'elemento 4 succede che avò un vettore del genere

    1)pippo
    2)paolo
    3)pietro
    4)
    5)pluto

    dunque c'è un buco nel punto 4 e non va bene, allora devo comprimere il vettore, cioè far scivolare in giù tutti gli elementi, ciò però comporta anche di aggiornare il numero di elementi contenuti nel vettore. in modo da avere:

    1)pippo
    2)paolo
    3)pietro
    4)pluto

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    189
    capito... ma come si implementa in java?? scusa la domanda, ma sono alle prime armi con java....

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    116
    Sinceramente non ricordo se c'è un metodo della classe array che ti comprime automaticamente il vettore, a mano comunque sarebbe un metodo tipo:

    comprimiVettore(vettore a, numeroElementi)

    che cicla l'intero vettore, quando trova un buco (if vettore(i)=="") fa partire un for (che parte da i e arriva a numeroElementi-1) e sposta tutti i dati in giù di uno(vettore(j)=vettore(j+1)) e poi l'ultimo elemento lo cancella (vettore(numeroElementi)=="") aggiornando il numero degli elementi(numeroElementi--)

    ma sinceramente se trovi un metodo della classe array che fa tutto in automatico sarebbe meglio

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    189
    scusate non c'e' una funzione che mi elimina automaticamente i doppioni restituendomi un nuovo vettore senza valori uguali??

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    189
    nessuno puo' aiutarmi??

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.