Is there a data type that simply holds a 2D grid of doubles?

Preferably in the JDK but I'm happy to use an open source 3rd party library like apache commons etc.

I'm looking for a class, and/or complimentary helper classes, that allow methods like these:

```
Grid g = new DoubleGrid(100, 100);

double min = g.getMinValue();
double someCell = g.getValueAt(x, y);
double origin = g.getValueAt(Coordinate.ORIGIN);

```

Ideally, more complicated things like:

```
Grid newGrid = GridTransformer.transform(g, new CellValueSquarer());

```

I'm completely making these classes up, and I don't need those particular methods per se, It's just an example of the *sort* of thing I'm looking for...