You should be declaring all your Lists as type List, and it becomes very easy to change the implementation type. Look:
Now, you can write new Vector<>() or new ArrayList<>() or new LinkedList<>() in that first line, and you will not notice any difference in the rest of the code. You only need that one change. ArrayList is the most efficient for most uses, but LinkedList is faster in certain circumstances (eg adding and removing at the beginning of the List).
For similar flexibility, you should give your Map (actually you should use HashMap rather than Hashtable, which is regarded as a very old-fashioned almost legacy class) actual type parameters; I think you want
Map<String, List<Something>> map1 = new HashMap<>();
...
Again you can only use <> without something inside in Java7.
The reason to use ArrayList and HashMap is that they are more modern and give faster performance; it says in the
API that ArrayList is often preferable. You may find some applications do require Vector, however, eg
this constructor which takes Vector, rather than List.
Anyway, there is a method which does what I think you want; I think you will find that method in the Vector class and in the ArrayList class, since I could find it in the List interface.