package ie.dcu.auto; import ie.dcu.matrix.*; import java.util.*; public class MaximaLocator { private final IntMatrix matrix; private int maximum; public MaximaLocator(IntMatrix matrix) { this.matrix = matrix; this.maximum = Integer.MIN_VALUE; } public int getMaximum() { return maximum; } public List findAll(int min) { maximum = matrix.maxValue(); if (maximum < min) { return Collections.emptyList(); } List indices = new ArrayList(); for (int i = 0; i < matrix.rows; i++) { int k = i * matrix.cols; for (int j = 0; j < matrix.cols; j++, k++) { if (matrix.values[k] == maximum) { indices.add(new Index2D(i, j)); } } } return indices; } }