Risistemato
codice:
import java.io.*;
import java.util.*;
import java.math.*;
interface Set071210
{
public BigDecimal getSize();
public BigDecimal getMean();
public BigDecimal[]getSet();
}
class SetOfNumbers implements Set071210
{
private final BigDecimal size;
private final BigDecimal [] set;
private final BigDecimal media;
private final BigDecimal somma;
public static class Builder
{
//parametri richiesti
private BigDecimal size;
private BigDecimal [] set;
//parametri opzionali
private BigDecimal media=new BigDecimal(0.0);
private BigDecimal somma=new BigDecimal(0.0);
public Builder(BigDecimal size, BigDecimal [] set)
{
this.size=new BigDecimal(size.toString());
for(int i=0;i<set.length-1;i++)
this.set=new BigDecimal(set[i].toString());
}
//i due metodi successivi li lascio ma non servono a nulla
public Builder setMedia(BigDecimal val)
{
media=val;
return this;
}
public Builder setSomma(BigDecimal val)
{
somma=val;
return this;
}
public SetOfNumbers build()
{
return new SetOfNumbers(this);
}
}
private SetOfNumbers(Builder builder)
{
size=builder.size;
set=builder.set;
media=builder.media;
somma=builder.somma;
for(int i=0;i<set.length-1;i++)
{
somma=somma.add(set[i]);
}
media=somma.divide(size,1);
}
public BigDecimal getSize()
{
return new BigDecimal(size.toString());
}
public BigDecimal getMean()
{
return new BigDecimal(media.toString());
}
public BigDecimal [] getSet()
{
for(int i=0;i<set.length;i++)
return new BigDecimal (set[i].toString());
}
}
Credo sia corretto però ho problemi con i BigDecimal.Al momento di compilarlo ho questo errore:
codice:
Esame.java:37: incompatible types
found : java.math.BigDecimal
required: java.math.BigDecimal[]
this.set=new BigDecimal(set[i].toString());
^
Esame.java:91: incompatible types
found : java.math.BigDecimal
required: java.math.BigDecimal[]
return new BigDecimal (set[i].toString());
Come sistemarlo?non ho molta dimestichezza con i BigDecimal. Grazie a tutti.