Возвращает ссылку на объект.
У вас никогда не будет фактического объекта в Java, только ссылка на него.
У вас есть настоящие примитивы (и вы не можете иметь ссылки на примитивы, только ссылки на объекты, которые обертывают примитивы или что-то в этом роде), но, конечно, примитивы не могут быть помещены в карты, только объекты могут.
Допустим, у вас есть следующий код:
Map<String,Vector<String>> map = new HashMap... // etc
Vector<String> vec = new Vector<String>();
vec.addElement("foo");
map.put("foo",vec);
vec.clear();
vec.addElement("bar");
map.put("bar",vec);
Vector<String> ret = map.get("foo");
System.out.println(ret.get(0)); // prints bar
Вы используете только один единственный вектор. Вы помещаете свой вектор в карту, а затем на следующей итерации очищаете его. Ну, вы только что очистили вектор внутри карты! То, что вы положили его на карту, не означает, что его нельзя изменить.
Я считаю, что вам лучше всего создать новый вектор для каждой записи.
Так замените
t.clear();
с
t = new Vector<String>();