[解決済み] 配列要素のインデックスを O(n) よりも高速に取得する。
2022-12-03 05:18:25
質問
巨大な配列と、そこからの値を持っているとします。私は、配列内の値のインデックスを取得したい。他の方法はありますか、むしろ呼び出す
Array#index
を呼び出すのではなく、それを取得するための他の方法はありますか?問題は、非常に巨大な配列を保持する必要性と
Array#index
を膨大な回数呼び出す必要があることに起因しています。
何度か試した後、私は
キャッシング
で構造体を格納することで、要素内部のインデックスをキャッシュすることができます。
(value, index)
フィールドを持つ構造体を格納することで、パフォーマンスが大幅に向上します (20倍勝てる)。
それでも私は、キャッシュなしでen要素のインデックスを見つけるより便利な方法があるかどうか疑問に思います(または、パフォーマンスを向上させる良いキャッシュ技術があるかどうか)。
どのように解決するのですか?
配列をハッシュに変換します。その後、キーを探します。
array = ['a', 'b', 'c']
hash = Hash[array.map.with_index.to_a] # => {"a"=>0, "b"=>1, "c"=>2}
hash['b'] # => 1
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] リスト内のアイテムのインデックスを検索する
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み] リストの最後の要素を取得する方法
-
[解決済み] 要素ごとの加算は、結合ループよりも分離ループの方がはるかに高速なのはなぜですか?
-
[解決済み] <は<=より速いのか?
-
[解決済み] Rubyでbeginとendのブロックを使わずにrescueを使うには?
-
[解決済み] FactoryGirlのbuildメソッドとcreateメソッドの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Rubyの継承とミキシンの比較
-
[解決済み] Rubyでbeginとendのブロックを使わずにrescueを使うには?
-
[解決済み] Rubyの"==="演算子は何をするのですか?重複] [重複
-
[解決済み] Ruby文字列のgsubメソッドとsubメソッドの違いについて
-
[解決済み] Ruby: selfを拡張する
-
[解決済み] rspecでテストグループを無効にする?
-
[解決済み] メソッドから2つ以上の値を返す
-
[解決済み] Rubyでオブジェクトのキーを配列として取得する
-
[解決済み] 変数名を使ったRubyの正規表現
-
[解決済み] あるメソッドのソースコードを動的に取得する方法と、そのメソッドがどのファイルに格納されているかを知るにはどうすればよいですか?