// Generate map of column name to value for each row
Map<String, Condition>[] dr = new HashMap[rows - 1];
for (int i = 1; i < rows; i++) {
dr[i - 1] = new HashMap();
for (int j = 0; j < cols; j++) {
Expr e = array.get(i, j);
Condition c = dr[i - 1].get(dc[j]);
if (c != null) {
c.add(Condition.valueOf(e));
} else {
dr[i - 1].put(dc[j], Condition.valueOf(e));