Это не может работать.
это:
for(String key:vector1){
}
является сокращением для этого:
for(Iterator<String> it = vector1.iterator();it.hasNext();){
String key = it.next();
}
И он работает только с одним итератором.
Вот код, который приближается к тому, что вы хотите:
// don't use vector, it's ancient and unofficially deprecated
final List<String> keyList = new ArrayList<String>();
final List<String> valueList = new ArrayList<String>();
//...
// add keys and values here
final Map<String, String> map = new HashMap<String, String>();
for(
Iterator<String> it1 = keyList.iterator(), it2 = valueList.iterator();
// this works even if the lists have different sizes
it1.hasNext() && it2.hasNext();){
map.put(it1.next(), it2.next());
}
Я также позволил себе устранить некоторые недостатки в вашем коде:
- Не используйте необработанные типы в новом коде (используйте обобщения)
- Не используйте
Vector
, Hashtable
или Enumeration
, используйте ArrayList<E>
, HashMap<K,V>
, Iterator<E>
(соответственно). Многие вопросы здесь охватывают это, , включая этот