I personally just pack them into an archive file format.
Something as simple as the Quake .PAK file should be enough for this case. It's pretty simple to load and has tools that make packing files into them easier.
Here is documentation on the format, along with a C example (which is pretty simple to convert to Java).
If you want to compress the files, look into zlib Java bindings, and you could either append onto the .PAK file format to allow for compression or you could just use the .zip file format instead.
EDIT:
Apparently I misinterpreted the original post.
I expressed myself wrong. Let's say my Map contains an enemy. How exactly does my Asset Manager know which file this Sprite uses, when it does not have access to the single Sprites within the Map?
You just store what's needed directly in the map file itself. When the AssetManager class loads the map, it should read in the portion of the file that contains a list of what's required. It's pretty efficient since everything is packed together in contiguous memory and can be read from pretty quickly. It's also really simple.
/* Pseudocode... */ struct map_asset_section_t { uint32_t num_entites; uint32_t num_animations; uint32_t num_tilesets; hash32_t entities[num_entities]; //... etc };