博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hash对象
阅读量:4040 次
发布时间:2019-05-24

本文共 1375 字,大约阅读时间需要 4 分钟。

       数组和Hash对象是统一的,数组只是Hash对象的一种表现形式,Hash对象里包含的元素的key是任意的,而数组里所包含的key是连续的,而且只能够使整数,在同一hash中,索引键必须唯一

Hash对象里的元素都是由两部分组成:key和value两个部分

Hash对象是由一些列在花括号里面的key-value对组成,多个key-value对之间以英文逗号隔开,key和value之间由"=>"隔开,最后一个逗号会被省略

a={"zhansa"=>40,"lisi"=>20,"wangwu"=>25}

p a;
p a["zhansa"]
p a["lisi"]
结果
{"wangwu"=>25, "lisi"=>20, "zhansa"=>40}
40
20

 

my_hash = Hash.new
puts "Hash对象的长度"+my_hash.size.to_s
my_hash["Java"]=5
p my_hash

my_hash["Ruby"]="aaaa"

p my_hash
输出结果
Hash对象的长度0
{"Java"=>5}
{"Ruby"=>"aaaa", "Java"=>5}

 

 

Hash对象的常用方法

length()/size()

delete(key)

include?(key)\has_key?(key)\key?\member?  判断指定的Hash对象是否包含特定的key

keys()

values()

b={"zhansa"=>40,"lisi"=>20,"wangwu"=>25}

p b.length().to_s
p b.include?("zhansa")
p b.keys
p b.values()
输出值
"3"
true
["wangwu", "lisi", "zhansa"]
[25, 20, 40]

Hash对象的迭代
Hash对象支持如下4个常用迭代
  each:迭代输出Hash对象里全部项(包括key和value)

  each_key 迭代输出Hash对象里全部key

  each_pair 迭代输出Hash对象里全部key-value对

  each_value 迭代输出Hash对象里全部value

b={"zhansa"=>40,"lisi"=>20,"wangwu"=>25}

b.each do |key,value|
  puts "key:"+key+",value:"+value.to_s
end
b.each_key do |key|
  puts "key:"+key
end
b.each_value do |value|
  puts "value:"+value.to_s
end
b.each_pair do |key,value|
  puts "key:"+key+",value:"+value.to_s
end
输出结果
key:wangwu,value:25
key:lisi,value:20
key:zhansa,value:40
key:wangwu
key:lisi
key:zhansa
value:25
value:20
value:40
key:wangwu,value:25
key:lisi,value:20
key:zhansa,value:40

转载地址:http://xdadi.baihongyu.com/

你可能感兴趣的文章
动态规划-找零钱
查看>>
动态规划-跳台阶
查看>>
动态规划-01背包问题
查看>>
动态规划-优化编辑器问题
查看>>
堆排序(C++实现)
查看>>
图的俩种遍历方式(DFS,BFS)C++代码实现
查看>>
Hibernate设置主键自增,执行HQL语句
查看>>
设置MYSQL最大连接数与WAIT_TIMEOUT
查看>>
java根据ip地址获取详细地域信息
查看>>
解决s:iterator嵌套s:radio的传值问题
查看>>
位运算-不用加减乘除做加法。
查看>>
C++继承的三种方式(公有,私有,保护)
查看>>
待修改:C++多线程编程学习笔记
查看>>
冒泡、选择、插入、归并
查看>>
QTextEdit显示超链接
查看>>
使用socket下载文件(C++)
查看>>
cent os6.5静默安装oracle
查看>>
cent os6.5搭建oracle-dataguard
查看>>
使easyui-tree显示到指定层次
查看>>
给easyui-input元素添加js原生方法
查看>>