2.7Ruby数据结构之数组(Array)、哈希(Hash)、集合(Set)

数组(Array)

数组是带索引的对象的集合。

  • 数组中的元素是有序的,通过索引访问。
  • 数组中的元素不必都属于同一个类型,而且可以随时替换元素。
  • 数组的长度(元素的个数)可以动态改变,可以向数组添加、删除元素。
nums = [1,2,3,4,5]
strs = ["a","b","c","d"]
print strs[0]    #=>a

哈希(Hash)

哈希,又称为 散列映射(map)、关联数组

  • 哈希中的值是通过键访问的。
  • 哈希里的值不必都属于同一个类型,而且可以随时替换值。
  • 哈希的长度(元素的个数)可以动态改变,可以向哈希添加、删除元素。

哈希与数组一样,都是表示对象的集合的对象。数组通过索引访问对象的元素,而哈希则是使用键。索引只能是数值,而键则可以是任意对象。通过使用键,哈希就可以实现对元素的访问与赋值。

{ 键 => 值 }
h1 = {"a"=>"b","c"=>"d"}
p h1["a"]               #=> "b"

另外,用符号作为键时,也可以用下面的方法定义。

h2 = {a: "b",c: "d"}
p h2                   #=> {:a=>"b",:c=>"d"}

哈希的键可以使用各种对象,不过一般建议使用下面的对象作为哈希的键。

  • 符号(Symbol)
  • 字符串(String)
  • 数值(Numeric)
  • 日期(Date)

集合(Set)

集合和数组的区别是集合没有顺序的概念,因此[“a”,”b”,”c”]、[“a”,”c”,”b”]、[“b”,”a”,”c”]是同一个集合。数组的索引功能和散列的键值实际上是在集合基础上封装的一个功能而已。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/back/ruby/1587.html

发表评论

登录后才能评论