Best way to store memory hogging objects

I’m creating a voxel game right now, and probably the biggest issue is the fact that if I use a three dimensional array to store my chunks, I can only store around 10 before the game crashes. If I use a one dimensional array, I can have up to 175 before the program crashes because of a heap space error, which really isn’t a problem. The problem is that with a one dimensional array, they’re very fast, but I can’t position the chunks around the player, just in one dimension. Here’s a picture to illustrate what I mean:

Obviously, this really isn’t acceptable. But, like I said if I use a three dimensional array, I can position the chunks around the player correctly, but I can’t actually have more than a few. My chunks hold quite a bit of data:

	private Tile[][][] tiles;
	private Tile[][][] transparent;
	private Tile[][][] temp;

The tiles array is for opaque tiles. The transparent is for transparent, and the temp is a combined transparent and tiles array for when I sort the chunks and decide which blocks need to be rendered. My chunks are 16^3, just in case that helps.

Is there a way to position chunks with a one dimensional array like with a three dimensional one?