Here's what I would do. I am not entirely sure if I am handling generics right, but oh well:
public Map mapMe(Collection list) {
Map map = new HashMap();
for (T el : list) {
map.put(el.toString(), el);
}
return map;
}
Just pass a Collection to it, and have your classes implement toString() to return the name. Polymorphism will take care of it.