web-dev-qa-db-ja.com

配列とハッシュの違いは何ですか?

Rubyの配列とハッシュの違いは何ですか?

27
emurad

Ruby-Docから:

配列は、オブジェクトの整数でインデックス付けされたコレクションです。 CまたはJavaの場合と同様に、配列のインデックス付けは0から始まります。負のインデックスは、配列の末尾を基準にしたものと見なされます。つまり、-1のインデックスは配列の最後の要素を示し、-2は配列の最後の要素の次というようになります。詳しくは こちら をご覧ください。

ハッシュは、キーと値のペアのコレクションです。これは配列に似ていますが、インデックスは整数インデックスではなく、任意のオブジェクトタイプの任意のキーを介して行われます。ハッシュは、対応するキーが挿入された順序で値を列挙します。

ハッシュにはデフォルト値があり、ハッシュに存在しないキーにアクセスすると返されます。デフォルトでは、その値はnilです。詳しくは こちら をご覧ください。

32
intellidiot

配列:配列は、データのコレクションを格納するために使用されます。配列内の各オブジェクトには、一意のキーが割り当てられています。この一意のキーを使用して、配列内の任意のオブジェクトにアクセスできます。配列の位置は「0」から始まります。最初の要素は「0」に、2番目の要素は1番目の位置に配置されます。

例:-irbで以下を試してください。

bikes = Array.new
bikes = %w[Bajaj-Pulsar, Honda-Unicorn, TVS-Apache, Yamaha, Suzuki]

配列に4つの要素を追加しました。

puts bikes[3]
Yamaha,

位置5に新しい要素を追加します。

bikes[5] = "Hardly Davidson"

ハッシュ:配列と同様に、ハッシュはデータの格納にも使用されます。ハッシュは、オブジェクトを別のオブジェクトにポイントします。文字列に特定の「意味」を割り当てることを検討してください。その文字列を参照するたびに、その「意味」を参照します。

例:

bikes = Hash.new
bikes = {
'Bajaj' => 'Pulsar 220, Pulsar 200, Pulsar 180 and Pulsar 150',
'Honda' => 'Unicorn, Shine and Splendor',
'TVS' => 'Apache, Star City, and Victor'
}

今すぐお試しください:

bikes['Bajaj']

=>「パルサー220、パルサー200、パルサー180、パルサー150」が表示されます。

10

配列は、a、b、c、dの順序付けられたリストです。

ハッシュはキーと値のペアのコレクションです。ジョンにはプジョー、ボブにはルノー、アダムにはフォードがあります。

8
Quentin

最近では、2つの用語が「ハッシュ化」されています。 I thinkこれがどうなるかです:

「ハッシュ」にはキー->値のペアがあります:

(top -> tshirt, bottom -> shorts, feet -> shoes)

また、「配列」には通常、インデックスがあります。

([0]tshirt, [1]shorts, [2]shoes)

しかし、正しいか間違っているか、「配列」と呼ばれるキー->値のペアも表示されます。

違いは主にいつ、どのように使いたいかにかかっていると思います。配列をハッシュ、またはその逆と呼ぶことにそれほど問題はありませんが、違いを知っている必要があります。

0
James