Java Search by multiple keywords
===

I have a list of records containing country, city, district and building name information (more than 50,000 records) where building name is unique for every record.

I want to search building, district & city. But I want to get a list of cities if I pass the country to a method, e.g. get(String country). Or, get a list of districts if I pass country and city to the method, e.g. get(String country, String city).

Is there any existing collection/library/data structure to do something like this? I am thinking of a tree-like structure / Map. I tried MultiKeyMap, but it does not return a list of values and it is not thread-safe. Also, I don't want to use database for doing this.

Thanks in advance for your help.
