How does minecraft effeciently represent the world internally?
I am thinking of something like a 3x3 matrix for each of the x,y,z coordinates. But that would be a waste of memory since a lot of block spaces are empty. Another solution would be to have a hashmap ((x,y,z) -> BlockObject), but that doesn't seem too efficient either.

Also once the data structure is populated, how does minecraft efficiently render the world?

If the question is too vague please ask for more details for me to provide. 
How does minecraft effeciently represent the world internally?
===

I am thinking of something like a 3x3 matrix for each of the x,y,z coordinates. But that would be a waste of memory since a lot of block spaces are empty. Another solution would be to have a hashmap ((x,y,z) -> BlockObject), but that doesn't seem too efficient either.

Also once the data structure is populated, how does minecraft efficiently render the world?

If the question is too vague please ask for more details for me to provide. 