I am trying to assign adjused values to the ArrayList
adjustedValues
, and would need that estimatedValues
do not change after the adjustValues()
method is called in main.
I have attempted to use inside the adjustValues()
method:
ArrayList<ArrayList<Double>> adjustedValues = (ArrayList< ArrayList< Double>>) estimatedValues.clone();
but had no luck since the elements which I needed were still getting modified
import java.util.ArrayList;
public class Test123 {
public static void main(String[] args) {
ArrayList<ArrayList<Double>> initialWeight = generateRandomWeights(6,0.1, 1);
ArrayList<ArrayList<Double>> estimatedValues = generateRandomWeights(6,0.1, 1);
ArrayList<ArrayList<Double>> adjustedValues = adjustValues(initialWeight, estimatedValues);
}
public static ArrayList<ArrayList<Double>> adjustValues (ArrayList<ArrayList<Double>> weights, ArrayList<ArrayList<Double>> estimateValues){
ArrayList<ArrayList<Double>> adjustedValues = new ArrayList<>(estimateValues);
for(int i=0; i<estimateValues.size(); i++){
for(int j=0; j<estimateValues.get(i).size(); j++){
adjustedValues.get(i).set(j, estimateValues.get(i).get(j) * weights.get(i).get(j));
}
}
return adjustedValues;
}
public static ArrayList<Double> getArrayListOfRandom(int c,double min, double max){
ArrayList randomValues = new ArrayList();
for(int i=0;i< c; i++){
double x = ((Math.random() * (max - min)) + min);
randomValues.add(x);
}
return randomValues;
}
public static ArrayList<ArrayList<Double>> generateRandomWeights(int c, double min, double max){
ArrayList<ArrayList<Double>> weights = new ArrayList<>();
for(int i=0; i<c; i++){
weights.add(getArrayListOfRandom(c,min,max));
}
return weights;
}
}