Map

JavaでMap形式を使うことは多いと思うんだけど,
それについて色々調査結果,の雑学.
実務レベルで役に立つかどうかは微妙っぽ?


キーの形式によってはHashMapよりもTreeMapの方が速いことがあるらしい.
HashMapはキーが分散しているときに有効で,
TreeMapはキーが線形に分布しているときに有効,と.
なんだ,普段使うのはHashMapで良いジャン.
普段よく使ってるようなテストケースで流してみたら,HashMapの方が速かったです.


もう一点,MapからKeyとValueの組み合わせを取り出すことってよくあると思うんだけど,
そのときに,

Iterator itr = map.keySet().iterator();
while(itr.hasNext()){
String key = (String) itr.next();
String value = (String) map.get(key);
}

ってよくやるんだけど,

Iterator itr = map.entrySet().iterator();
while(itr.hasNext()){
Map.Entry ent = (Map.Entry) itr.next();
String key = (String) ent.getKey();
String value = (String) ent.getValue();
}

ってやった方が速いらしい.
確かに見た目もちょっとだけそれっぽいかも?
実測値で簡単なサンプル作ったら,10〜20%くらい早くなった.
まぁ処理全体で見たら微細なもんだろうけどね.