Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613

    [java] Vector e addElement(int)

    Salve a tutti,
    devo creare un array di dimensioni variabili che contenga gli indici delle posizioni di un particolare carattere in una stringa. Non sapendo a priori il numero di volte che quel carattere compare ho deciso di utilizzare "Vector".

    Il problema è che una volta che ho trovato l'indice non posso fare:

    codice:
    //al posto di "Vector" ovviamente c'è un'istanza
    Vector.addElement(int);
    e nemmeno
    codice:
    Vector.addElement((Integer) val);
    Dov'è il problema?

    Vi prego illuminatemi, ho un pò di confusione con gli array di oggetti.

  2. #2
    Utente di HTML.it L'avatar di plafo
    Registrato dal
    Sep 2000
    Messaggi
    84
    il problema è che il metodo addElement non accetta un int (tipo primitivo), puoi passargli solamente oggetti di una classe....




    ciao ciao

    Carlo
    non può piovere per sempre

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    Grazie, quindi dovrei per forza creare una classe per contenere un int?

    E poi anche l'integer è considerato un tipo primitivo?

  4. #4
    Utente di HTML.it L'avatar di plafo
    Registrato dal
    Sep 2000
    Messaggi
    84

    Re: [java] Vector e addElement(int)

    Vector.addElement((Integer) val);



    questo val su cui provi a fare il cast che tipo di variabile è?
    comunque non c'è bisogno di crearsi una classe per contenere gli int; quando da un vector devi recuperare un elemento lo fai con il metodo get(int arg0).
    Questo ti restituirà sempre un object e dovrai essere tu a fare il cast....
    spero di essere stato chiaro




    ciao ciao

    Carlo
    non può piovere per sempre

  5. #5
    Strano, a me funziona, da solo dei warning quando compilo, a causa di eccezioni non controllate.
    Ad esempio questo codice:

    codice:
            Vector v = new Vector();
            int i1 = 1;
            int i2 = 90;
            int i3 = -45;
            v.addElement(i1);
            v.addElement(i2);
            v.addElement(i3);
            Integer a[]=new Integer [v.size()];
            v.toArray(a);
            for (int x=0; x<a.length; x++)
                System.out.println(""+a[x]);
    da:

    compile:
    run:
    1
    90
    -45
    BUILD SUCCESSFUL (total time: 0 seconds)
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    Per Plafo:

    Il problema non è recuperarlo, è inserirlo

    I passaggi che ho fatto sono: recuperare l'indice, trasformarlo in stringa, trasformarlo in integer e inserirlo nel vector... scusate ma mi sembra un pò cretino (non volevo dire degno di me, ma sarebbe equivalente) però funziona.

    Intendevo crearsi degli oggetti per contenere un int da inserire nel vector.

    per dekdek:

    beato te a me segnala un errore e non viene compilato

    codice:
    1 error
    BUILD FAILED (total time: 2 seconds)

  7. #7
    Beh, a questo punto... Quale errore?
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  8. #8
    Utente di HTML.it L'avatar di plafo
    Registrato dal
    Sep 2000
    Messaggi
    84
    Intendevo crearsi degli oggetti per contenere un int da inserire nel vector




    si il metodo addElement accetta come argomento solo un object quindi deve essere per forza un oggetto quello che devi inserire in un vector....
    correggimi se ho capito male a quest'ora dopo pranzo




    ciao ciao

    Carlo
    non può piovere per sempre

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    Capiste bene... ci ritornerò domani.. nel frattempo sono andato in ufficio. L'errore che indica è qualcosa tipo :"Tipi incompatibili" non ricordo... Appena avrò modo di tornarci sopra lo posterò.

    Grazie intanto

  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    @Leandro: Integer non è int. Per risolvere il tuo problema è sufficiente questo:
    codice:
    int mioValore = ...;
    
    vector.add( new Integer(mioValore) );
    @dekdek: probabilmente tu utilizzi JDK 5.0, la quale prevede un package java.util completamente riscritto. Tutte le classi sono diventate type-safe per cui è necessario utilizzare l'esplicita tipizzazione delle classi contenitori.

    Mi pare strano, comunque, che non ti dia errori se tenti di inserire un tipo primitivo... :master:


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.