List等に特定の値が存在するかを高速に確認する
変化しない一覧を保持して存在有無をチェックするような場合、HashMap#containsKey()(HashSet#contains())を使う
【例:定数として利用する場合】
/** 名称 */
private static final HashSet names = new HashSet (
Arrays.asList("あああ", "いいい", "ううう", "えええ")
);
/**
* 名称が存在したら true を返す。無ければ false
* @param val
*/
private boolean containsName(String val) {
return names.contains(val);
}
【メモ】
- 1~2件程度であれば java.util.ArrayList#contains()でも性能的にも問題は無いが、件数が増えるにつれ高速化が効果を発揮する。
- forループ等で回して有ったらbreakして……等と書くよりはちょっとカッコイイ(かも)
- 詳細は参考リンクの『contains()の速度』を参照。
【参考リンク】
最終更新:2012年07月06日 15:36