Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258

    [java] come si fa questa conversione?

    Utilizzo arraylist..

    Se faccio:

    System.out.println(array.get(0));

    Non mi dà alcun problema....ma se voglio memorizzare l'intero in una variabile ho un errore:

    int n = array.get(0);

    :bubu: Ovviamente prima di tutto ho fatto:

    array.add(new Integer (3));


    :bubu: :bubu: :bubu: :bubu: :bubu: help!

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    il metodo get() ritorna con un Object... :bubu: che fare?

  3. #3
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao. Allora se in precedenza hai fatto:

    array.add(new Integer (3)); per recuperare il 3 devi fare:

    int n = ( ( Integer )( array.get( 0 ) ) ).intValue();

    Nel caso della println non hai nessun problema in quanto la println effettua il toString dell'oggetto prelevato. Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    ti ringrazio...ho capito che per i numeri non si presta per niente questa classe. C'è un modo di dichiarare un array così:

    int[] array = {8,9,14,15};

    e successivamente cancellarlo e attribuirgli altri valori?

    Voglio però accedervi sempre con la variabile array...quindi array deve puntare a un gruppo di numeri di lunghezza arbitraria...

    esempio: la seconda volta che utilizzo array gli attribuisco: 5 e 7
    quindi facendo array.length mi dovrà dare 2.

    Questo mi sarebbe molto comodo per una ricerca che non so precedentemente il numero di valori restituiti...

    altre idee intelligenti comunque sono gradite

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    in pratica credo di stare cercando una classe appropriata per i numeri che abbia un metodo add per aggiungere i valori e un metodo per cancellare tutto l'array, a me servono solo queste cose...in fin dei conti..

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Puoi dichiarare un array di interi nel modo da te indicato, ma non puoi pretendere che sia un array dinamico.
    Se vuoi avere un array dinamico puoi costruirti una classe ad hoc che lo implementi: fai in modo che quando viene aggiungo un elemento (attraverso un apposito metodo) l'array venga aumentato di un elemento. Come si fa? Così:

    1) Crei una copia del tuo array
    2) ricrei l'array con l'istruzione new, utilizzando come dimensione la dimensione dell'array di appoggio (la copia) + 1: array = new int[copia.length + 1]
    3) Ricopi all'interno dell'array tutti gli elementi di quello di appoggio e aggiungi l'elemento passato al metodo.

    In nessun caso puoi avere array che si allungano o si accorciano a tuo piacimento (la dimensione in memoria per un array è fissata e quella rimane a meno di nuove allocazioni).


    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

  7. #7
    Per fare ciò che tu vuoi , puoi implementare una class ArrayVariabile che effettui l'operazione da te richiesta e che però lavori non su Object , ma su int
    Si è possibile dichiarare l'array come dici tu ed è anche possibile ridichiararlo tenedo sempre lo stesso nome.
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    Però un riferimento a un array non posso riallocarlo? cioè non posso pretendere che prima mi puntava ai numeri {1,2,3,4,5} e poi mi punti ai numeri {1,2}? Un riferimento è pur sempre un riferimento o sbaglio? pensavo che dopo un istruzione

    int[] array = {1,2,3,4,5};

    potessi fare: array = null;
    e quindi: array = new {1,2};

    ma nulla

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Questa classe dovrebbe risolvere il tuo problema:
    codice:
    class MioArray {
       private int [] array;
    
       public MioArray() { array = new int[0]; }
    
       public MioArray(int [] arr) {
          array = new int[arr.length];
          for (int i=0; i<arr.length; i++) {
             array[i] = arr[i];
          }
       }
       public void add(int x) {
          int [] copia = new int[array.length];
          for (int i=0; i<array.length; i++) copia[i] = array[i];
          array = new int[copia.length + 1];
          int i = 0;
          for (i=0; i<copia.length; i++) array[i] = copia[i];
          array[i] = x;
       }
    
       public void svuota() {
          array = new int[0];
       }
    
       public int get (int indice) {
          if ((indice >= array.length) || (indice < 0)) return null;
          return array[indice];
       }
    
       public int getLunghezza() { return array.length; }
    }
    Se a te bastavano i metodi per svuotarlo, aggiungere elementi, e avere la lunghezza, questa va benissimo.

    Un riferimento ad un array lo puoi sempre ridefinire, ma credo che valga solo per quegli array definiti tramite l'operatore new.


    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

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    Alla fine credo che utilizzerò una soluzione di questo tipo:
    codice:
     
    class ProvaArray2{
      public static void main(String[] args){
        int[] array  = {1,2,3,4,5};
        int[] array2 = {1,2};
        
        
        array = array2;
        System.out.println("dimensione: " + array.length);
    
        for(int i=0;i<array.length;i++) System.out.println("elemento: " + array[i]);
    
      }
    }

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 © 2024 vBulletin Solutions, Inc. All rights reserved.