- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
//...
Hashtable somehash = new Hashtable();
//...
public String keyByValue (String value) {
String s;
while (somehash.elements().hasMoreElements()) {
s = (String) somehash.elements().nextElement(); //!!!
if (s.equals(value)) { //!!!
return s;
}
}
return null;
}
Lure Of Chaos 06.11.2010 01:17 # +1
конечно, Hashtable и цикл через Enumeration это здорово, но это все мелочи, просто старый код.
Это кстати подтверждается отсутствие generics
Анонимус 06.11.2010 02:02 # +1
Cr0s 06.11.2010 02:46 # 0
Анонимус 06.11.2010 02:55 # 0
Мистер Хэнки 06.11.2010 06:52 # +1
http://google-collections.googlecode.com/svn/trunk/javadoc/index.html?com/google/common/collect/BiMap.html
для небольших хэшей сойдет. по крупным в любом случае придется циклом ходить.
Cr0s 06.11.2010 02:47 # 0
Мистер Хэнки 06.11.2010 06:40 # +1
Судя по названию метод должен возвращать ключ, соответствующий переданному значению value (или самый первый из ключей, если их несколько, содержащих value).
Но судя по коду (метод elements() возвращает список не ключей, а значений) тут просто производится проверка наличия в хэше значения value, да и еще возврат переданного значения в случае успеха xD
Cr0s 06.11.2010 15:16 # 0
Это самый смак, благодаря которому, метод образует бесконечный цикл.
Lure Of Chaos 07.11.2010 02:28 # 0