Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    1

    ArrayList e popolamento

    Ciao a tutti ragazzi...ho un problema con il popolamento di un ArrayList

    codice:
    protected String titolo,issn,isbn; 
    protected final int dataPub; 
    public List authors=new ArrayList<RepoAuthors>(); 
    public List citazioni = new ArrayList(); 
    
    public ScientificPublication(String unTitolo, Object RepoAuthors, int unAnno,String unIssn,String unIsbn, int unCit){ 
    if (unTitolo!="")this.titolo=unTitolo; 
    if (RepoAuthors!=null)this.authors.add(RepoAuthors); 
    this.dataPub = unAnno; 
    if (unIssn=="")this.issn=null;else this.issn=unIssn; 
    if (unIsbn=="")this.isbn=null;else this.isbn=unIsbn; 
    this.citazioni.add(new int[2]); }

    Praticamente ho quell'array citazioni dove devo inserire le citazioni per anno quindi l'utente mi inserisce un anno che equivale a dataPub mentre citazioni è un intero....

    this.citazioni.add(new int[2]); in questa riga teoricamente dentro l'arraylist citazioni dovrei creare un record (se così si può chiamare) chi alla prima posizione libera dell'arraylist mi inserisca dataPub nello spazio 0 e nello spazio 1 il numero di citazioni....mettendo quel new int[2] mi crea i 2 spazi ma poi come inserisco i dati in quei due?????


    grazie mille a tutti!!!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Questa riga di codice non è sbagliata, ma genera un forte warning:
    codice:
    public List citazioni = new ArrayList();
    Stai, infatti, dichiarando un oggetto istanziandolo come raw-type di ArrayList(), mentre, da Java 5 in avanti, gli ArrayList dovrebbero essere tipizzati (come hai fatto poco sopra).
    Essendo che tale ArrayList dovrebbe contenere array di interi, dovresti istanziarlo in questo modo:
    codice:
    public List<int[]> citazioni = new ArrayList<int[]>();
    Anche la riga precedente, antrebbe sistemata. L'interfaccia List, infatti, va tipizzata:
    codice:
    public List<RepoAuthors> authors=new ArrayList<RepoAuthors>();
    Per il resto, mi sa che stai facendo troppi passaggi in un sol colpo: crea prima l'array di interi, poi popolalo e, alla fine, aggiungilo all'ArrayList:

    codice:
    int[] record = new int[2];
    record[0] = dataPub;
    record[1] = numero di citazioni;
    citazioni.add( record );
    Si può anche fare tutto in un passaggio, ma perdi enormemente in leggibilità.

    PS: Non so quale sia il valore "numero di citazioni", tant'è che l'ho messo in corsivo nel codice, ma questo lo sai tu.

    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 L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Inoltre le stringhe non si confrontano con == ma con equals.
    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.