Visualizzazione dei risultati da 1 a 10 su 20

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2017
    Messaggi
    22
    Ho provato con questa soluzione:

    public class MultiInsieme {

    ArrayList<MultiElemento>set;
    MultiElemento x;

    public MultiInsieme (ArrayList<MultiElemento>set){

    this.set=set;
    set = new ArrayList<MultiElemento>();
    }

    public void getRipetizioni (double valore){

    for (int i=0; i<set.size(); i++){
    if (i==x.valore){
    x.ripetizioni++;
    }
    }
    }


    public void addElemento ( double valore, int ripetizioni ){

    for (int i=0; i<set.size(); i++){
    if (i==x.valore){
    x.ripetizioni++;
    }
    set.add(x);
    }
    }
    }

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Klibion Visualizza il messaggio
    codice:
    public class MultiElemento {
           
        final double valore=3.14;
        int ripetizioni=5;
    Il testo iniziale dice espressamente "un costruttore che crea un MultiElemento dati valore e ripetizioni". Quindi quale è il senso di questi dati schiantati così a caso?



    Quote Originariamente inviata da Klibion Visualizza il messaggio
    Ho provato con questa soluzione:
    Innanzitutto:

    private ArrayList<MultiElemento> set;

    Poi quel MultiElemento x; ti assicuro che NON ti serve.

    Quote Originariamente inviata da Klibion Visualizza il messaggio
    codice:
        public MultiInsieme (ArrayList<MultiElemento>set){
            
            this.set=set;
            set = new ArrayList<MultiElemento>();
        }
    Il testo dice "La classe deve avere: · un costruttore che crea un MultiInsieme vuoto".
    Che senso ha ricevere come argomento una lista, assegnarla a set e poi subito dopo assegnare di nuovo a set un ArrayList vuoto? NON ha senso.

    Quote Originariamente inviata da Klibion Visualizza il messaggio
    codice:
         public void getRipetizioni (double valore){
             
             for (int i=0; i<set.size(); i++){
                 if (i==x.valore){
                    x.ripetizioni++;
                 }
             }
         }
    getRipetizioni che cosa ti fa pensare? Che dovrebbe RESTITUIRE il numero di ripetizioni. E allora che senso ha il void come tipo di ritorno? E poi anche l'incremento di ripetizioni su un oggetto??

    E poi: perché confronti un indice i con un valore double? Sono tutte cose che NON hanno alcun senso.

    Quote Originariamente inviata da Klibion Visualizza il messaggio
    codice:
        public void addElemento ( double valore, int ripetizioni ){
            
            for (int i=0; i<set.size(); i++){
                 if (i==x.valore){
                    x.ripetizioni++;
                 }
                 set.add(x);
             }
        }
    Il testo dice:

    un metodo addElemento (double valore, int ripetizioni) che aggiunge al multiInsieme l'elemento valore con il numero di ripetizioni indicato. Attenzione: se nel multinsieme c'è già un elemento con lo stesso valore, viene solo aggiornato il suo campo ripetizioni, altrimenti viene aggiunto all'arraylist un nuovo MultiElemento

    Questo vuol dire una cosa abbastanza semplice: ricevo un valore, vado a cercare questo valore in tutti gli oggetti MultiElemento presenti nel ArrayList (che l'oggetto MultiInsieme mantiene al suo interno). Se lo trovo, gli aggiungo semplicemente il numero di ripetizioni. Se alla FINE di tutto il ciclo non lo trovo, allora inserisco un nuovo oggetto MultiElemento.
    Ti sembra più chiaro?



    P.S. dovresti sforzarti di fare qualche ragionamento in più.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2017
    Messaggi
    22
    Quando il testo mi chiedeva di creare un MultiInsieme vuoto, pensavo che mi dicesse di creare un ArrayList MultiInsieme senza elementi al suo interno. Avevo capito che questo ArrayList rappresentasse il MultiInsieme e che dovessi inserire i MultiElementi al suo interno. Inoltre non ho capito se le variabili sono le stesse per entrambe le classi e se le dovrei collegare...

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