Listに特定の値が存在するかを高速に確認する

「Listに特定の値が存在するかを高速に確認する」の編集履歴(バックアップ)一覧はこちら

Listに特定の値が存在するかを高速に確認する」(2012/07/06 (金) 15:36:28) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

&bold(){List等に特定の値が存在するかを高速に確認する} 変化しない一覧を保持して存在有無をチェックするような場合、HashMap#containsKey()(HashSet#contains())を使う &bold(){【例:定数として利用する場合】} /** 名称 */ private static final HashSet names = new HashSet ( Arrays.asList("あああ", "いいい", "ううう", "えええ") ); /** * 名称が存在したら true を返す。無ければ false * @param val */ private boolean containsName(String val) { return names.contains(val); } -同様に、SQL等で名称のみを取得したリストやメモリ展開がされているリストの中に、特定の値が存在するかを確認する場合にも利用できる。 -上記の例と同様に [[java.util.HashSet>>http://java.sun.com/javase/ja/6/docs/ja/api/java/util/HashSet.html]] に格納し、[[contains()>>http://java.sun.com/javase/ja/6/docs/ja/api/java/util/HashSet.html#contains(java.lang.Object)]] メソッドで有無を確認する。 &bold(){【メモ】} -1~2件程度であれば [[java.util.ArrayList#contains()>>http://java.sun.com/javase/ja/6/docs/ja/api/java/util/List.html#contains(java.lang.Object)]]でも性能的にも問題は無いが、件数が増えるにつれ高速化が効果を発揮する。 -forループ等で回して有ったらbreakして……等と書くよりはちょっとカッコイイ(かも) -詳細は参考リンクの『contains()の速度』を参照。 &bold(){【参考リンク】} -[[Javaのコスト>>http://www.ne.jp/asahi/hishidama/home/tech/java/cost.html#h_base_time]]
&bold(){List等に特定の値が存在するかを高速に確認する} 変化しない一覧を保持して存在有無をチェックするような場合、HashMap#containsKey()(HashSet#contains())を使う &bold(){【例:定数として利用する場合】} /** 名称 */ private static final HashSet names = new HashSet ( Arrays.asList("あああ", "いいい", "ううう", "えええ") ); /** * 名称が存在したら true を返す。無ければ false * @param val */ private boolean containsName(String val) { return names.contains(val); } -同様に、SQL等で名称のみを取得したリストやメモリ展開がされているリストの中に、特定の値が存在するかを確認する場合にも利用できる。 -上記の例と同様に [[java.util.HashSet>>http://java.sun.com/javase/ja/6/docs/ja/api/java/util/HashSet.html]] に格納し、[[contains()>>http://java.sun.com/javase/ja/6/docs/ja/api/java/util/HashSet.html#contains(java.lang.Object)]] メソッドで有無を確認する。 &bold(){【メモ】} -1~2件程度であれば [[java.util.ArrayList#contains()>>http://java.sun.com/javase/ja/6/docs/ja/api/java/util/List.html#contains(java.lang.Object)]]でも性能的にも問題は無いが、件数が増えるにつれ高速化が効果を発揮する。 -forループ等で回して有ったらbreakして……等と書くよりはちょっとカッコイイ(かも) -詳細は参考リンクの『contains()の速度』を参照。 &bold(){【参考リンク】} -[[Javaのコスト>>http://www.ne.jp/asahi/hishidama/home/tech/java/cost.html#h_base_time]] #comment

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。