Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    37

    [Java] operazioni su array multidimensionali

    Salve ragazzi, avendo un array String multidimensionale X*2 dove X è un numero imprecisato di righe; questo array viene inizializzato a {{"A","2},{"B","3"}}; oltre a questo array, ho un array unidimensionale, sempre di stringhe del tipo: {"C","4"}; è possibile inserire piu array unidimensionali in coda all'array multidimensionale? con l'operatore + mi da errore...
    grazie dell'aiuto

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    devi creare un nuovo array con dimensione n+1 e mettere gli elementi vecchi e il nuovo
    arraycopy

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    37
    putroppo nn si sa l'esatta dimensione finale dell'array multidimensionale, io devo solamente inserire piu array monodimensionali in quello multidimensionale; sicuramente ci staranno pure altre tecniche; quello che serve a me è il seguente: ho una struttura in cui sono già presenti una lettera e un numero per ogni riga; ogni volta mi arrivano una coppia di numero-lettera e io li devo confrontare con quelli della struttura e nel caso in cui nn sono presenti, aggiungerli ad essa

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    io farei con un Vector o una classe lista
    ma se devi usare gli array puoi fare come dicevo
    hai il tuo array a[][]
    devi aggiungere un oggetto
    lo copi
    Object[][] tmp = new Object[a.lenght+1][];
    System.arraycopy(a, 0, tmp, 0, a.length);
    metti il nuovo elemento
    tmp[tmp.length-1][] = obj;
    a = tmp;
    per gli array funziona, con gli array bidimensionali non ho provato, forse dovrai usare arraycopy anche per gli elementi contenuti nell'array

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    37
    Originariamente inviato da floyd
    io farei con un Vector o una classe lista
    ma se devi usare gli array puoi fare come dicevo
    hai il tuo array a[][]
    devi aggiungere un oggetto
    lo copi
    Object[][] tmp = new Object[a.lenght+1][];
    System.arraycopy(a, 0, tmp, 0, a.length);
    metti il nuovo elemento
    tmp[tmp.length-1][] = obj;
    a = tmp;
    per gli array funziona, con gli array bidimensionali non ho provato, forse dovrai usare arraycopy anche per gli elementi contenuti nell'array
    ci stavo pensando anche io alla classe vector, solo che nn memorizza gli elementi a coppia, il vector alla fine è come se fosse un array particolare

  6. #6
    Scusa la domanda, ma io non ho ben capito cosa dovrebbe contenere l'array? Sono un po' tardo sta mattina...:master:

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    37
    Mi sono deciso ad usare un vettore; tale vettore deve contenere stringhe del tipo "A-1", "B-2" ecc ecc
    Inoltre ho un'altra stringa del tipo "B-3"; quello che devo fare è confrontare questa stringa con gli elementi del vettore e nel caso in cui nn fosse presente, aggiungerla alla fine con la funzione add. Il problema è che se il controllo lo effettuo con una if, inclusa in un ciclo for in cui mi scannerizza un elemento alla volta, nn va bene.
    Vi mostro l'esempio


    codice:
    import java.util.*;
    class bla {
        public static void main(String args[]) {
            Vector vecteur = new Vector(100);
                     
                vecteur.add(new String("A-1"));
                vecteur.add(new String("B-1"));
           
           String s= new String("B-1");
           int a=0;
           for(int i = 0; i < vecteur.size(); i++){
           
           while (s != vecteur){
           vecteur.add(s);
           }
       }
    System.out.println ("vecteur: " + vecteur);
    }
    }
    qui se lui ad esempio vede che B-1 è diverso da A-1, aggiunge l'elemento, che però se lo ritrova in seguito scansionando il secondo elemento del vettore; invece quello che vorrei è: scannerizza TUTTO QUANTO poi se trovi una stringa uguale ad un elemento, nn fare nulla, altrimenti se nn trovi nulla di uguale, aggiungimi la stringa alla fine del vettore

    Vi ringrazio comunque dell'aiuto

  8. #8
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    il Vector accetta degli Object
    dunque anche degli array
    codice:
    String[] s = {"a", "b"};
    Vector<String[]> v = new Vector<String[]>();
    v.addElement(s);
    se vuoi associare un nome a un oggetto puoi usare le HashMap

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [Java] operazioni su array multidimensionali

    Originariamente inviato da Xidius
    Salve ragazzi, avendo un array String multidimensionale X*2 dove X è un numero imprecisato di righe; questo array viene inizializzato a {{"A","2},{"B","3"}}; oltre a questo array, ho un array unidimensionale, sempre di stringhe del tipo: {"C","4"}; è possibile inserire piu array unidimensionali in coda all'array multidimensionale? con l'operatore + mi da errore...
    grazie dell'aiuto
    Presupponendo l'utilizzo di Java 5, si può fare così:
    codice:
    ArrayList<String[]> array = new ArrayList<String[]> ();
    
    array.add (new String[] {"A","2"});
    
    array.add (new String[] {"B","3"});
    
    String[] c4 = {"C","4"};
    
    array.add (c4);
    
    ....ecc....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  10. #10
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    ho letto solo ora a cosa serve
    codice:
    HashMap<String, Object> hash = new HashMap<String, Object>();
    hash.put("A-1", oggetto1);
    hash.put("B-2", oggetto2);
    if (!hash.containsKey("B-3"))
      hash.put("B-3", oggetto3);
    gli oggetti possono essere null

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.