Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [java] array di doppie stringhe

    salve a tutti!

    ho bisogno di un vector che contenga per ogni posizione due stringhe. In C si dichiamara una struttura che contine due stringhe e si stabilisce il nome di ogni stringa, ma in java come si può fare?

    V---> V[0].nome=Mario, V[0].cognome=Rossi

  2. #2
    Non esiste la stessa funzionalità in java e direi anche meno male...
    Quelle due righe di codice sono la cosa meno Object Oriented vista finorà.
    Per farlo in java devi creare un tua classe per esempio Persona e dichiarare il tuo vettore di tale tipo.
    Es (Pseudo Codice):
    codice:
    public class Persona
    {
        private String nome;
        private String cognome;
        
        //costruttore
        public Persona(String nome,String cognome);
    
       //get/set attibuti
       public String getNome()
      {
         return nome;
      }
    
       public void setNome(String nome)
      {
         this.nome = nome;
      }
    }
    
    //ARRAY
    Persona[] array = new Persona[10];
    persona[0] = new Persona("Pippo","Paperino");

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Annasila7
    salve a tutti!

    ho bisogno di un vector che contenga per ogni posizione due stringhe. In C si dichiamara una struttura che contine due stringhe e si stabilisce il nome di ogni stringa, ma in java come si può fare?

    V---> V[0].nome=Mario, V[0].cognome=Rossi
    Originariamente inviato da francesco.muia
    Non esiste la stessa funzionalità in java e direi anche meno male...
    Quelle due righe di codice sono la cosa meno Object Oriented vista finorà.
    Per farlo in java devi creare un tua classe per esempio Persona e dichiarare il tuo vettore di tale tipo.
    Qual è la differenza tra struct Persona e class Persona? Ok, in Java hai getter e setter, ma il modo "alla C" e quello "alla Java" sono equivalenti...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    Originariamente inviato da Alex'87
    Qual è la differenza tra struct Persona e class Persona? Ok, in Java hai getter e setter, ma il modo "alla C" e quello "alla Java" sono equivalenti...
    In programmazione il simile non è uguale ad equivalente...
    In particolare come dici tu in java ci sono i get e set ma ci potrebbero essere n metodi che effettuano diverse operazioni sulla classe (OOP: information hiding) cosa che in uno struct non puoi fare.
    Potevo capire che si avessi paragonato un Classe C++ con un classe Java ma non uno "struct"
    La cosa che si avvicina di più, e dico si avvicina (non è equivalente), sono gli enumerator anche se in questi puoi definire metodi come nelle classi.

  5. #5
    grazie per l'aiuto, in parte mi avete chiarito.
    Volevo chiedere però: se io non so la dimensione dell'array a priori, dovrei usare un vector? e come posso risolvere il problema usando una struttura di con non conosco la dimensione?

  6. #6
    L'array in java devo essere sempre inizializzati con la dimensione.
    Puoi risolvere in 2 modi:
    1) dichiari il tuo array di dimensione n e quando vedi che l'array si è riempito allochi un nuovo array di dimensione maggiore e ci copi il contenuto dell'array e il nuovo elemento.
    2)Perché reinventare l'acqua calda esistono le Collection:
    codice:
    //CREO UNA LISTA DI TIPO ArrayList
    List<Persona> collection= new ArrayList<Persona>(<Op. puoi passare il numero di elementi>);
    //CREO UNA LISTA DI TIPO LinkedList
    List<Persona> collection= new LinkedList<Persona>(<Op. puoi passare il numero di elementi>);
    
    //CREO UNA LISTA DI TIPO Vector
    Vector<Persona> collection = new Vector<Persona>(<Op. puoi passare il numero di elementi>);
    
    //le principali operazioni che puoi eseguire su tali strutture sono :
    collection.add(new Persona(.....));//aggiunge in coda
    collection.get(i); restituisce l'elemento iesimo
    Qui trovi i tutorial ufficiali sulle collections

  7. #7
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da francesco.muia
    In programmazione il simile non è uguale ad equivalente...
    In particolare come dici tu in java ci sono i get e set ma ci potrebbero essere n metodi che effettuano diverse operazioni sulla classe (OOP: information hiding) cosa che in uno struct non puoi fare.
    Lo so benissimo, quello che cercavo di dire io non è che una classe e una struct sono la stessa cosa. Dico solo che quello che in C facevi con una struct lo puoi fare benissimo con una classe (anche se, giocando un po' con struct e puntatori a funzione puoi "emulare" una classe).

    Originariamente inviato da francesco.muia
    Potevo capire che si avessi paragonato un Classe C++ con un classe Java ma non uno "struct"
    La cosa che si avvicina di più, e dico si avvicina (non è equivalente), sono gli enumerator anche se in questi puoi definire metodi come nelle classi.
    Oddio, gli si avvicina ma molto alla lontana, eh...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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.