Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    107

    Arraylist come variabili d'istanza classe [JAVA]

    ciao a tutti! ho un problema non mi ricordo come si fa (se possibile) a creare un classe una cui variabile di istanza è rappresentata da un arraylist, mi spiego meglio data la classe Entry con constuttore:

    codice:
    public Entry (int g, int o, String n){
        giorno = g;
        ora = o;
        nome = n;
    }

    devo creare una sua sottoclasse la cui istanze sono le stesse più una lista di persone partecipanti! detto questo io sono arrivato a questo punto:

    codice:
    private ArrayList<String> partecipanti = new ArrayList<String>()
    
    public Entry (int g, int o, String n, ?????? ){  // costruttore
        super (g,o,n);
        parteceticpanti = ????
    }

    Auitatemiiii! grazie
    Ultima modifica di LeleFT; 11-02-2015 a 12:32 Motivo: Aggiunti i tag CODE

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,317
    Ho spostato anche questa discussione nel forum Java.



    Inoltre, il codice va postato all'interno degli appositi tag [CODE] .. [/CODE] per mantenerne indentazione e formattazione. Ho corretto anche questo.


    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    107
    grazie e scusami

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,317
    Non capisco dove sia il problem... si passa l'ArrayList come un qualsiasi altro parametro:


    codice:
    private ArrayList<String> partecipanti = new ArrayList<String>()
    
    public Entry (int g, int o, String n, ArrayList<String> p){  // costruttore
        super (g,o,n);
        parteceticpanti = p;
    }

    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

  5. #5
    Sicuramente se vuoi un sottoclasse è meglio che non la chiami Entry come la super classe.
    Un secondo consiglio, se te lo posso dare, e non usare i tipi specializzati a sinistra degli assegnamenti (ArrayList,LinkedList -> List).
    Detto questo:
    codice:
    public class EntryWithPartecipanti extends Entry
    {
           private ArrayList<String> partecipanti;
    
           public EntryWithPartecipanti (int g, int o, String n, ArrayList<String> p ){  // costruttore
                 super (g,o,n);
                 parteceticpanti = p;
          }
    }
    //SOLUZIONE SENZA TIPI SPECIALIZZATI
    public class EntryWithPartecipanti extends Entry
    {
           private List<String> partecipanti;
    
           public EntryWithPartecipanti (int g, int o, String n, List<String> p ){  // costruttore
                 super (g,o,n);
                 parteceticpanti = p;
          }
    }

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    107
    ho un altro piccolo problema, ogni volta che su un arraylist di tipo String evoco il metodo .size() mi dice cannot find symbol, come è possibile?
    Ultima modifica di ROCCHEFILI; 11-02-2015 a 13:36

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,317
    Evidentemente o stai chiamando il metodo su un oggetto di tipo diverso o su una variabile che non è stata dichiarata.
    Mostra il codice...


    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

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    107
    codice:
    int q = (s.split(",")).length();
     ...
    ...
    ArrayList<String> p = new ArrayList<String>();
            int i = 4;
            do {
            p.add(parts[i]);
            i++;
            } while (i!=q); 
            Meeting m = new Meeting(Integer.parseInt(parts[1]),Integer.parseInt(parts[2]), parts[3], p);
            meeting.add(m);
            break;
    in pratica cerco di calcolare la gandezza di un array creato con split per poi fare in iterazione su di esso ma mi da errore (ho provato anche ad utilizzare .length)

  9. #9
    Questo perchè length non è un metodo ma un proprietà
    codice:
    int q = (s.split(",")).length;
    //NON
    int q = (s.split(",")).length();

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    107
    hai ragione, stavo sbagliando una cazzata, grazie!!

Tag per questa discussione

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.