Luaのハッシュテーブルの値をランダムに取得する


Luaのテーブルは添字に数値を使うか、文字列を使うかによって、扱い方が変わってきます。

 

いわゆるハッシュテーブルと言われる値をランダムに取得する方法をご紹介します。

自作するしかない

ランダムアクセスの処理は自作するしかありません。

しかも、ハッシュテーブルの場合は一工夫が必要です。

まずはランダムアクセスの骨子から見ていきます。

 

Luaでテーブルを配列として扱った場合は、次のようにして実現できます。

 

しかし、テーブルをハッシュテーブルとして作成してしまうと、テーブルの最大値が取得できなくなります。

 

ではどうすればいいのか。

荒技ですが、ハッシューテーブルを作成すると同時に配列を作成してしまうという方法があります。

 

このようにすれば、あとは配列でのランダムアクセスの方法に当てはめることができるでしょう。

 

データを二重に管理しなければいけないデメリットはありますが、関数などにまとめて取り扱いを簡単にすれば、使えなくもありません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です