Design pattern for aggregated array list

I have a OOP design problem.
- I want to associate a file extension with a Class.
- I want each class to say which extension(s) it supports.
- A Factory method is going to receive the file extension pattern and then look for a class that matches it.

So basically I'm thinking I need to build a map (array) and then search it (or perhaps both at once?)

Is there a design pattern for doing something like this? I guess it would require class reflection?