当values都是整形时,按照Hash的Values排序:

h = {'a'=>1,'b'=>2,'c'=>5,'d'=>4}

h.sort {|a,b| a[1]<=>b[1]}

输出:[["a", 1], ["b", 2], ["d", 4], ["c", 5]]

当我们需要对Hash进行排序时,不能像数组那样简单的使用sort方法,因为数组中的数据类型都是一样的(整型),Hash中的数据类型可能并不完全一样,如整数类型和字符串类型就没法一起排序,此时就需要我们进行处理,如下(如果Hash中的数据类型全部相同可以不进行如下处理):

def sorted_hash(aHash)

return aHash.sort{

|a,b|  a.to_s <=> b.to_s

}

End

h1 = {1=>'one', 2=>'two', 3=> 'three'}

h2 = {6=>'six', 5=>'five', 4=> 'four'}

h3 = {'one'=>'A', 'two'=>'B','three'=>'C'}

h4 = h1.merge(h2)                      #合并hash

h5 = h1.merge(h3)

def sorted_hash(aHash)

return aHash.sort{|a,b| a.to_s <=> b.to_s  }

end

p(h4)

p(h4.sort)

p(h5)

p(sorted_hash(h5))

----------------Result---------------

{5=>"five", 6=>"six", 1=>"one", 2=>"two", 3=>"three", 4=>"four"}

[[1, "one"], [2, "two"], [3, "three"], [4, "four"], [5, "five"], [6, "six"]]

{"two"=>"B", "three"=>"C", 1=>"one", 2=>"two", "one"=>"A", 3=>"three"}

[[1, "one"], [2, "two"], [3, "three"], ["one", "A"], ["three", "C"], ["two", "B"]]

事实上Hash的sort方法是把一个Hash对象转换成以[key,value]为单个元素的一个数组,然后再用数组的sort方法进行排序。

最新文章

  1. JavaScript var关键字、变量的状态、异常处理、命名规范等介绍
  2. Directory 与 DirectoryInfo 的区别
  3. 转:Android开发:使用JNI读取应用签名
  4. hdu 4612 强连通
  5. java基础类和对象-题
  6. JMS相关概念
  7. face mask in opencv
  8. Gradient Boosted Regression Trees 2
  9. Javascript之获取屏幕宽高
  10. 解决Visual Studio 找不到报表控件、rdlc中文乱码
  11. perl学习(4) 子程序
  12. RNN的介绍
  13. CSS中的各种FC
  14. Docker入门学习
  15. day26 Python __getattribute__
  16. 配置maven从自己的私服下载jar包nexus、maven私服仓库(二)
  17. JMD Handy Baby 2 to Decode &amp; Adding New BMW 525 ID46 Key
  18. 灯 &amp; 树
  19. 流程控制语句 if
  20. vmplayer桥接以及nat配置nginx

热门文章

  1. [Python爬虫] Selenium实现自动登录163邮箱和Locating Elements介绍
  2. Java-基础练习2
  3. .net使用FluentValidation进行服务端验证。
  4. paip.信用卡账单处理分类bug o21
  5. 让delphi解析chrome扩展的native应用
  6. 水星Mercury路由器端口映射设置图文方法
  7. Wireshark图解教程
  8. android如何播放和录制音频
  9. Javascript 严格模式
  10. Scala 深入浅出实战经典 第65讲:Scala中隐式转换内幕揭秘、最佳实践及其在Spark中的应用源码解析