Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    19

    [java] Arraylist di Array

    Ciao a tutti,
    avrei bisogno di una mano su un concetto che non mi è molto chiaro
    ho creato un arraylist di questo tipo:
    ArrayList<String []> rowssap= new ArrayList<String[]>();
    che popolo in questo modo con un ciclo
    String [] rowsap = new String[2]
    rowsap[0]= "100x140"
    rowsap[1]="prova"
    rowssap..add(rowsap);
    ....

    dopo aver popolato il mio arraylist avrei bisogno di verificare se un array String[] è presente nel mio arraylist quindi faccio:

    String [] rigaconfronto = new String [2];
    rigaconfronto[0]="100x140";
    rigaconfronto[1]="prova";

    e quindi uso:

    int index=0;
    index = rowssap.indexOf(rigaconfronto);

    purtroppo però mi restituisce sempre -1 anche se in debug vedo che la mia rigaconfronto è uguale alla mia rowsap.

    Cosa non conosco degli array e degli arraylist??!!
    grazie 1000

  2. #2
    Esegui il confronto manualmente.
    Il metodo equals (utilizzato dal metodo indexOf) non è stato ridefinito per gli array a quanto pare.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    19
    Originariamente inviato da VincenzoTheBest
    Esegui il confronto manualmente.
    Il metodo equals (utilizzato dal metodo indexOf) non è stato ridefinito per gli array a quanto pare.
    grazie per la risposta,
    cosa intendi per confronto manuale?

  4. #4
    Originariamente inviato da nicolaz
    grazie per la risposta,
    cosa intendi per confronto manuale?
    Scusa l'ambiguità
    Comunque, controlli il contenuto dall'array (di cui vuoi verificare la presenza) con l'i-esimo array estratto dalla lista:
    in questo caso confronti le 4 celle, normalmente.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    19
    Originariamente inviato da VincenzoTheBest
    Scusa l'ambiguità
    Comunque, controlli il contenuto dall'array (di cui vuoi verificare la presenza) con l'i-esimo array estratto dalla lista:
    in questo caso confronti le 4 celle, normalmente.
    chiaro,
    ma così mi da l'idea di un codice un pò "sporco".
    mi daresti solo qualche dritta per il secondo suggerimento che mi hai dato (ridefinire il metodo equals()). mi piacerebbe provarci!!.
    grazie e scusa se approfitto.

  6. #6
    Originariamente inviato da nicolaz
    chiaro,
    ma così mi da l'idea di un codice un pò "sporco".
    Non lo sarebbe, in quanto ti basterebbe scrivere una banale espressione booleana.
    Supponi che A è l'array parametro, e B è l'array nell'i-esima posizione della lista, il confronto che devi fare è questo:
    codice:
    A[0].equals(B[0]) && A[1].equals(B[1])
    Originariamente inviato da nicolaz
    mi daresti solo qualche dritta per il secondo suggerimento che mi hai dato (ridefinire il metodo equals()). mi piacerebbe provarci!!.
    Per fare questo dovresti creare una classe wrapper per gli array e dunque ridefinire il metodo equals, e di regola anche il metodo hashCode(), in quanto due oggetti uguali devono avere la stessa immagine hash.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    19
    Originariamente inviato da VincenzoTheBest
    Non lo sarebbe, in quanto ti basterebbe scrivere una banale espressione booleana.
    Supponi che A è l'array parametro, e B è l'array nell'i-esima posizione della lista, il confronto che devi fare è questo:
    codice:
    A[0].equals(B[0]) && A[1].equals(B[1])

    Per fare questo dovresti creare una classe wrapper per gli array e dunque ridefinire il metodo equals, e di regola anche il metodo hashCode(), in quanto due oggetti uguali devono avere la stessa immagine hash.
    ok uso la prima soluzione ma mi studierò anche la seconda
    sei stato utilissimo!!
    grazie 1000

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.