📖

Rubyの配列とハッシュでデータを効果的に管理する方法を学んでみた

2024/05/06に公開

キーとバリューをセットで保存するデータ構造は、あらゆるプログラミング言語で使用されます。

1、配列の利用

キーバリューの前に、まずは配列のおさらい。複数の要素(データ)を扱うために使われます。

example.rb
member = ["ぼく",22, "大阪"]

問題点:データ同士の関連性がわかりにくい

このまま扱うこともありますが、これだと何がどの情報なのか関係性がよくわからない場合もあります。(例が簡単なので推測しやすいですが)

example.rb
puts member
 # 出力結果
ぼく
22
大阪

2、ハッシュの活用

キーとバリューのペアを持つデータ構造をハッシュと言います。一つのハッシュで複数のキーとバリューのペアを持つことができます。データに対して名前をつける。それをセットにして管理する方法です。Rubyに限らず他の言語でも頻出します。

キー バリュー
user1 ぼく
user2 わたし
user3 あなた
member1 = { name: "ぼく", age: 22, region: "大阪"}

キーを指定すればそれと紐づいたバリュー(値)を取得できます。

puts member[:name] # 名前を知りたい
puts member[:age] # 年齢を知りたい
# 出力結果
ぼく
22

言語別キーバリュー構造の例

そういえば似たような構造がJavaScriptにもあったような。。。
調べてみると、やはり言語別にまとめてみました。

JavaScript Python PHP Java
オブジェクト 辞書(Dictionary) 配列 マップ(Map)

問題点:ハッシュが増えると管理しにくい

しかしハッシュが増えると管理しにくいです。

member1 = { name: "ぼく", age: 22, region: "大阪"}
member2 = { name: "わたし", age: 28, region: "熊本"}
member3 = { name: "あなた", age: 30, region: "青森"}
.
.
.

メンバーの数だけ変数も定義する必要があるので、なんかめんどくさいですよね。笑

3、ハッシュを配列に追加する

そこで登場するのが「ハッシュを配列に追加する」という管理方法。

example.rb
# 配列の中にハッシュ追加
member = []
member << { name: "ぼく", age: 22, region: "大阪" }
member << { name: "わたし", age: 28, region: "熊本" }
member << { name: "あなた", age: 30, region: "青森" }

これで任意のデータを正確に取得できます。

example.rb
puts member[0] # 1番目のメンバーについて全て知りたい
puts member[0][:age] # 1番目のメンバーの年齢だけ知りたい
# 出力結果
{:name=>"ぼく", :age=>22, :region=>"大阪"}
22

このようにしてハッシュを配列に格納することで、大量のデータも効率的に管理できるようになります。この方法は特にデータベースからの情報取得や、複数のユーザー情報を扱う際に有効です。

まとめ

  • 配列の利用: 配列を使用すると、複数の要素を一箇所で管理できますが、要素間の関連性が直感的にはわかりにくいです。
  • ハッシュの活用: キーバリューペアを用いるハッシュは、要素間の関連性を明確に示すことができますが、大量のデータを単独で管理するには不便さがあります。
  • 配列内のハッシュ: 配列の中にハッシュを追加することで、データ管理と取得が効率的に行え、特定のデータへのアクセスも容易になります。

ありがとうございました!

Discussion