У меня есть следующий фрагмент кода в моем устаревшем коде.Здесь он выполняет итерацию двух хеш-таблиц с использованием перечисления.
Hashtable h4 = new Hashtable();
Hashtable h5 = new Hashtable();
for (int i=0 ; i < 3; i++) {
h4.put (i, "" + i);
//System.out.println(h4.get(i));
}
for (int i=0 ; i < 3; i++) {
h5.put (i, "++"+i);
//System.out.println(h5.get(i));
}
Enumeration e = h4.keys();
while (e.hasMoreElements ()) {
System.out.println(e.nextElement());
}
e = h5.keys ();
while (e.hasMoreElements()) {
System.out.println(e.nextElement());
}
Идеальное ожидание выглядит следующим образом:
0
1
2
++ 0
++ 1
++ 2
Однако приведенный выше код выведите в виде;
2
1
0
2
1
0
Проблема, я могу видеть здесь, состоит в том, что перечисление не сбрасывается, когда дело доходит до цикла второй Hashtable.Я хотел бы получить причину такого поведения.Да, конечно, в последней версии Java есть более эффективные способы зацикливания.