`
seemoon
  • 浏览: 159442 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

将数组转换为hash

阅读更多
假如有如下对象

class Nation
  attr_accessor :code, :name
end


现在有一个Nation的对象数组

a #=> [#<Nation:0x3b90ac @code=1, @name="U.S.A">, #<Nation:0x3b6974 @code=86, @name="China">, ...]


要将这个对象数组转化为一个hash,以code作为key。

方法1:
h={}
a.each{|e| h[e.code]=e}


方法2:
h=a.inject({}){|f,e| f[e.code]=e; f}





分享到:
评论

相关推荐

    js数组去重的hash方法

    对于对象类型的元素,要去重可能需要其他的策略,例如将对象的特定属性转换为字符串进行比较,或者基于对象的结构递归地进行深度比较。而对于数组类型的元素,需要进行递归检查数组内部的所有元素才能决定两个数组...

    浅谈js多维数组和hash数组定义和使用

    1. `toString()`:将数组转换为以逗号分隔的字符串。 2. `toLocaleString()`:与`toString()`类似,但会根据本地环境进行转换。 3. `join()`:允许指定分隔符,将数组元素合并为字符串。 4. `shift()`:移除并返回...

    PHP中用hash实现的数组

    哈希表的核心在于通过一个哈希函数将键转换成哈希值,然后将哈希值作为数组下标来存储对应的值。这样,当我们想要查找特定键的值时,只需要计算键的哈希值并定位到相应的数组位置。 在PHP的源码中,数组的哈希值是...

    String2Hash:将字符串数组(文本)转换为哈希码-matlab开发

    0 到 2^32-1 之间的整数值type : 类型有“djb2”(默认)或“sdbm” 从 c 代码: http : //www.cse.yorku.ca/~oz/hash.html djb2 这个算法是多年前由 dan Bernstein 首次报道的在 comp.lang.c 中数据表该算法是为 ...

    oc中数组排序

    1. NSArray排序:由于NSArray本身不支持排序,如果需要对NSArray进行排序,通常会先将其转换为可变数组NSMutableArray,进行排序后再转回NSArray。 2. NSMutableArray排序:提供了`sortUsingComparator:`和`...

    C#将hashtable值转换到数组中的方法

    在某些场景下,我们可能需要将 `Hashtable` 中的值转换为数组,以便进行进一步的操作或处理。这里我们将详细讲解如何使用 `CopyTo` 方法来实现这个转换。 首先,了解 `Hashtable` 的基本结构和特性。`Hashtable` 是...

    Java基础-模拟HashMap集合(基于数组和链表) 数组和链表.pdf

    它使用数组和链表来存储键值对,并通过Hash函数来将键转换为索引。同时,我们还可以看到HashMap的 resize 操作,用于扩展HashMap的容量以适应不断增加的数据。 结论 在本文中,我们详细介绍了如何模拟Java的...

    nodejs geohash

    Geohash通过递归地将地理空间划分为正方形,并用二进制表示这些正方形,然后将二进制编码转换为字母数字字符串。这种方法使得两个相邻地理位置的Geohash字符串具有较高的相似性,便于比较和定位。 在Node.js中,...

    Java用数组和链表的方式简单实现HashMap的增删改功能 数组和链表.pdf

    当链表的长度大于8时,会将链表转换为红黑树,以优化查找效率。 结论 本文介绍了使用数组和链表的方式简单实现HashMap的增删改功能。HashMap的数据结构主要由数组、链表和红黑树组成。put方法用于将键值对添加到...

    javascript实现数组去重的多种方法_.docx

    这种方法的主要思路是使用Hash表来存储唯一的元素,然后将Hash表中的元素转换为数组。 代码实现: ``` var arr = [1,'b','b',4,3,3,4,5,1]; Array.prototype.unique2 = function(){ var hash = {}; var arr1 = []...

    JSON后台相互转换.pdf

    在 getObjectArray4Json() 方法中,我们使用 JSONArray.fromObject() 方法将 json 数组转换为 JSONArray 对象,然后使用 toArray() 方法将 JSONArray 对象转换为 Java 数组。 在 getList4Json() 方法中,我们使用 ...

    Hash表的建立和查找

    Hash表的建立是指将用户输入的数据元素个数和各元素的值转换为Hash表的过程。在本文中,我们使用哈希函数将关键字映射到索引上,并将元素添加到哈希表中。 Hash表的查找 Hash表的查找是指根据用户输入的值查找哈希...

    C#加密转换为java的加密

    在上面的代码中,我们首先使用System.Text.Encoding.Unicode.GetBytes方法将输入的字符串转换为字节数组,然后使用MD5CryptoServiceProvider类的ComputeHash方法计算其MD5摘要。最后,我们将MD5摘要转换为十六进制的...

    Java集合与数组区别简介及相互转换实例

    四、数组转换为集合的方法 数组可以使用Arrays.asList()方法转换为集合。注意:对于基本类型的数组,需要先转换成 wrapper 类型的数组。 ``` Integer[] numbers = {7, 7, 8, 9, 10, 8, 8, 9, 6, 5, 4}; List list ...

    Java将GeoHash转化为对应的经纬度坐标实例代码

    在Java编程中,GeoHash是一种将地理坐标(经纬度)编码为字符串的技术,便于存储、检索和计算地理位置数据。这个实例代码展示了如何将一个已经编码的GeoHash字符串解码回其原始的经纬度坐标。 GeoHash的主要思想是...

    javascript如何判断数组内元素是否重复的方法集锦

    1. **数组转换成字符串**:使用 `join()` 方法将数组转换成以逗号 `,` 分隔的字符串,并在最后添加一个逗号 `,` 作为占位符。 2. **去除当前元素**:使用 `replace()` 方法移除当前正在检查的元素。 3. **检查剩余...

    前端大厂最新面试题-hash-table.docx

    * Hash Table 由数组和哈希函数组成,哈希函数将关键字转换为数组的索引。 二、哈希函数 * 哈希函数是将关键字转换为索引的函数,哈希函数的选择对 Hash Table 的性能有很大影响。 * 常见的哈希函数有直接寻址法、...

    c#实现MD5加密

    2. 或者,定义一个静态方法,例如GetMD5,创建MD5CryptoServiceProvider实例,然后调用ComputeHash方法,将加密的字符串转换为字节数组,再将字节数组转换为十六进制字符串。 3. 另一个静态方法MD5Encrypt,同样是...

Global site tag (gtag.js) - Google Analytics