首先安装 ruby
安装 rvm => ruby => rubymine
首先是数组的创建
names = [ ] #定义一个空数组 names = Array.new #创建数组 names = Array.new(20) #设置数组的大小
我们还可以返回数组的长度
names = Array.new(20) puts names.size # 返回 20 puts names.length # 返回 20
数组的运算
<< :追加元素
+ :串联方法
- :数组差集
& :数组交集
| :数组并集
* :重复数组,如果*后面是整数,则返回重复整数次的数组,如果是字符串,则返回重复使用该字符串连接数组。
- [1,2] << 3 #[1,2,3]
- [1,2] + [1,2] #[1,2,1,2]
- [1,2,3] - [3,4] #[1,2]
- [1,2,3] & [3,4] #[3]
- [1,2,3] | [3,4] #[1,2,3,4]
- [1,2] * 2 #[1,2,1,2,1,2]
- [1,2] * '--' #1--2
数组的常用方法
array.at(index) 返回索引为 index 的元素。一个负值索引从 self 的末尾开始计数。如果索引超出范围则返回 nil。
array.clear 从数组中移除所有的元素
array.compact 返回 self 的副本,移除了所有的 nil 元素
array.delete_at(index) 删除指定的 index 处的元素,并返回该元素。如果 index 超出范围,则返回 nil
array.empty? 如果数组本身没有包含元素,则返回 true
array.eql?(other) 如果 array 和 other 是相同的对象,或者两个数组带有相同的内容,则返回 true
array.first [or] array.first(n) 返回数组的第一个元素或前 n 个元素
array.join(sep=$,) 返回一个字符串,通过把数组的每个元素转换为字符串,并使用 sep 分隔进行创建的
array.last [or] array.last(n) 返回 self 的最后一个元素。如果数组为 空 ,则第一种形式返回 nil
array.pop 从 array 中移除最后一个元素,并返回该元素
array.push(obj, ...) 把给定的 obj 附加到数组的末尾
array.reverse 返回一个新的数组,包含倒序排列的数组元素
array.sort [or] array.sort { | a,b | block } 返回一个排序的数组
array.uniq 返回一个新的数组,移除了 array 中的重复值
散列hash
定义hash
h = Hash.new h = Hash[1=> 'a',2=> 'b'] h = {a=> '1',b=> '2'}
我们可以对hash进行简单的操作
items = [ { barcode: 'ITEM000000', name: '可口可乐', unit: '瓶', price: 3.00 }, { barcode: 'ITEM000001', name: '雪碧', unit: '瓶', price: 3.00 } ] item[:barcode] # 对属性进行操作 item.push(item) #添加键值对 item.push(count:1) #添加属性 item << [ count : 1] #添加属性
hash常用方法
hash.clear 从哈希中移除所有的键值对
hash.[key] 使用键,从哈希引用值。如果未找到键,则返回默认值
hash.shift 从 hash 中移除一个键值对,并把该键值对作为二元素数组返回
hash.size 以整数形式返回 hash 的 size 或 length
hash.sort 把 hash 转换为一个包含键值对数组的二维数组,然后进行排序
hash.store(key, value) 存储 hash 中的一个键值对
hash.to_a 从 hash 中创建一个二维数组。每个键值对转换为一个数组,所有这些数组都存储在一个数组中
hash.to_s 把 hash 转换为一个数组,然后把该数组转换为一个字符串
hsh.invert:返回逆转Hash的键和值的新Hash
相关推荐
哈希表(使用键值标识元素,键值一样的元素即认为相等,需重载 == 运算符并由用户定义哈希函数) binstree.h: 二叉搜索树(需重载 == 和 运算符) avltree.h: AVL 树(需重载 == 和 运算符) <br>如果要...
简单的一维数组散列算法,输入的数字不用太多…………
哈希、动态数组总结
c代码实现哈希表线性探测再散列。关键字均为纯数字。查找时为单次查找,未加入循环
梅花易数,关于二维数组,哈希表的应用,一位数组。
重装Ruby Ruby中用于数组,哈希,可枚举,字符串,对象和日期的有用方法和猴子补丁的集合。 通过使生活更轻松和编码更自然而受到驱动。 该库与其他库之间的区别在于,所有猴子修补均以选择加入的方式执行,因为您不...
cpp代码-二次探测再散列哈希表
数组在Java中频繁使用,想到重要 包装类 理解String类和StringBuffer类 向量与哈希表
Ruby的数组可以容纳对象,如字符串,整数,长整数,哈希,符号,甚至其他Array对象。Ruby数组没有在其他语言中数组一样严格。Ruby数组自动增长同时增加元素。 创建数组: 有许多方法来创建或初始化一个数组。一种方式...
散列表,也称为哈希表。根据设定的哈希函数H(key)和处理冲突的方法将一组... 处理冲突的方法:1)开放定址法(线性探测再散列,二次探测再散列,伪随机探测再散列) 2)再哈希法 3)链地址法 4)建立一 公共溢出区
(2)从键盘读入待查找的权重数值,以除留余数法为哈希函数,二次探测再散列法解决冲突建立哈希表,基于哈希算法从数组中查找相应的记录,计算相应的查找时间,并在屏幕上输出显示。(提示:当前计算机时间 函数 C\...
数组是存储数据的一种容器,在Ruby中,数组中存储的数据可以是任何类型的数据;这和JAVA不同,在JAVA中,数组是存储同一类型数据的结构。 1. 在Ruby中如何定义数组呢? 使用[ ]来框住元素,而元素之间则使用”,”...
【力扣刷题】数组-链表-哈希-双指针
开散列法对关键码集合用散列函数计算散列地址,具有相同地址的关键码归于同一子集合,每一个子集合称为一个桶,各个桶中的元素通过一个单链表链接起来,各链表的头结点组成 一个向量,因此,向量的元素个数与可能的...
在 Ruby 中,数组和散列可以称之为集合。 迭代器返回集合的所有元素,一个接着一个。在这里我们将讨论两种迭代器,each 和 collect。 Ruby each 迭代器 each 迭代器返回数组或哈希的所有元素。 语法 collection....