Adding ArrayLists to another ArrayList in java -


i want find minimum , maximum matrix each column. function

public static void findminmax(double[][] matrix) {         arraylist<double> column = new arraylist<double>();         arraylist<double> minmax = new arraylist<double>();         arraylist<arraylist<double>> minmaxvalues = new arraylist<arraylist<double>>();             (int j=0;j<matrix[1].length;j++) {                 column.clear();                 minmax.clear();                 (int i=0;i<matrix.length;i++) {                     column.add(matrix[i][j]);                 }                 double max = collections.max(column);                 double min = collections.min(column);                 minmax.add(min);                 minmax.add(max);                 try {                     system.out.println("adding final minmax " + j);                     minmaxvalues.add(minmax);                     system.out.println(minmaxvalues);                 } catch (exception ex) {                     system.out.println(ex.getmessage());                 }             }             system.out.println(minmaxvalues);     } 

the problem @ last iteration adds minmaxvalues last minmax arraylist. here example of output

adding final minmax 0 [[-3.5, 4.5]] adding final minmax 1 [[-3.5, 4.5], [-3.5, 4.5]] adding final minmax 2 [[-3.5, 4.5], [-3.5, 4.5], [-3.5, 4.5]] adding final minmax 3 [[-3.5, 4.2], [-3.5, 4.2], [-3.5, 4.2], [-3.5, 4.2]] adding final minmax 4 [[-3.5, 4.2], [-3.5, 4.2], [-3.5, 4.2], [-3.5, 4.2], [-3.5, 4.2]] adding final minmax 5 [[-3.5, 4.2], [-3.5, 4.2], [-3.5, 4.2], [-3.5, 4.2], [-3.5, 4.2], [-3.5, 4.2]] adding final minmax 6 [[-3.5, 4.2], [-3.5, 4.2], [-3.5, 4.2], [-3.5, 4.2], [-3.5, 4.2], [-3.5, 4.2], [-3.5, 4.2]] adding final minmax 7 [[-3.9, 4.2], [-3.9, 4.2], [-3.9, 4.2], [-3.9, 4.2], [-3.9, 4.2], [-3.9, 4.2], [-3.9, 4.2], [-3.9, 4.2]] adding final minmax 8 [[-3.9, 4.2], [-3.9, 4.2], [-3.9, 4.2], [-3.9, 4.2], [-3.9, 4.2], [-3.9, 4.2], [-3.9, 4.2], [-3.9, 4.2], [-3.9, 4.2]] adding final minmax 9 [[-3.9, 4.2], [-3.9, 4.2], [-3.9, 4.2], [-3.9, 4.2], [-3.9, 4.2], [-3.9, 4.2], [-3.9, 4.2], [-3.9, 4.2], [-3.9, 4.2], [-3.9, 4.2]] adding final minmax 10 [[-3.9, 4.5], [-3.9, 4.5], [-3.9, 4.5], [-3.9, 4.5], [-3.9, 4.5], [-3.9, 4.5], [-3.9, 4.5], [-3.9, 4.5], [-3.9, 4.5], [-3.9, 4.5], [-3.9, 4.5]] 

as can see works fine until minmax 10 don't understand happens. can me?

you need reinitialize arraylist<double> minmax every iteration. otherwise result list contain 11 references same list, containing last values put in.

you need move

arraylist<double> minmax = new arraylist<double>(); 

inside loop.