博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ruby 集合
阅读量:6858 次
发布时间:2019-06-26

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

ruby有Set类用来适用集合!
在使用之前要 require 'set'
集合操作:
并集:Set#union(别名:|或+)
InBlock.gifrequire 'set' 

InBlock.gifs1=Set[3,4,5] 

InBlock.gifs2=Set[3,1,5] 

InBlock.gifp s1.union(s2) 

InBlock.gifp s1+s2 

InBlock.gifp s1|s2
#<Set: {5, 1, 3, 4}>
#<Set: {5, 1, 3, 4}>
#<Set: {5, 1, 3, 4}>
交集:Set#intersection(别名:&)
InBlock.gifrequire 'set' 

InBlock.gifs1=Set[3,4,5] 

InBlock.gifs2=Set[3,1,5] 

InBlock.gifp s1.intersection(s2) 

InBlock.gifp s1&s2
#<Set: {5, 3}>
#<Set: {5, 3}>
差集:Set#-
InBlock.gifrequire 'set' 

InBlock.gifs1=Set[3,4,5] 

InBlock.gifs2=Set[3,1,5] 

InBlock.gifp s1-s2 

InBlock.gifp s2-s1
#<Set: {4}>
#<Set: {1}>
Set#member?  ,  Set#include?
InBlock.gifrequire 'set' 

InBlock.gifs1=Set[3,4,5] 

InBlock.gifs2=Set[3,1,5] 

InBlock.gifp s1.include?(3) 

InBlock.gifp s2.member?(5)
true
true
Set#empty?  , Set#clear?
InBlock.gifrequire 'set' 

InBlock.gifs1=Set[3,4,5] 

InBlock.gifs2=Set[3,1,5] 

InBlock.gifp s1.empty? 

InBlock.gifs1.clear 

InBlock.gifp s1.empty? 

false
true
测试两个集合的关系:
1.接收方是否为另一个集合的子集?真子集?超集?
InBlock.gifrequire 'set' 

InBlock.gifx = Set[3,4,5] 

InBlock.gify = Set[3,4] 

InBlock.gif 

InBlock.gifp x.subset?(y)                  #x是否y的子集?       否 

InBlock.gifp y.subset?(x)                  #y是否x的子集?       是 

InBlock.gifp y.proper_subset?(x)        #y是否x的真子集?     是 

InBlock.gifp x.subset?(x)                  #x是不是本身的子集? 是 

InBlock.gifp x.proper_subset?(x)        #x是否本身的真子集? 否 

InBlock.gifp x.superset?(y)               #x是否y的超集?        是
Set#add(别名<<):往集合中添加元素,返回添加后的集合。 merge方法用于合并两个集合(并集)
InBlock.gifrequire 'set' 

InBlock.gifx = Set[3,4,5] 

InBlock.gify= Set[1,2,3] 

InBlock.gifp x<<5 

InBlock.gifp x.merge(y)
#<Set: {5, 3, 4}>
#<Set: {5, 1, 2, 3, 4}>
----------------------------
 
本文转自 fsjoy1983 51CTO博客,原文链接:http://blog.51cto.com/fsjoy/70176,如需转载请自行联系原作者
你可能感兴趣的文章
java:快速文件分割及合并
查看>>
Windows下编程--模拟时钟的实现
查看>>
Flatten Binary Tree to Linked List
查看>>
破解TexturePacker加密资源
查看>>
IOS7开发~Images.xcassets
查看>>
硬盘助手写入文件的正确提取
查看>>
Java自定义Exception
查看>>
纯css3实现的竖形二级导航
查看>>
Oil Deposits 搜索 bfs 强联通
查看>>
SQL Server调优系列基础篇(常用运算符总结)
查看>>
人性漫画:一个人成功前和成功后赤裸裸的区别 人成功前后对比 成功人发展由来前后结果...
查看>>
压缩解压缩命令巧记
查看>>
atitit.基于组件的事件为基础的编程模型--服务器端控件(1)---------服务器端控件和标签之间的关系...
查看>>
7 Types of Regression Techniques you should know!
查看>>
自己实现一个IOC(控制翻转,DI依赖注入)容器
查看>>
Java集合概述
查看>>
android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事项
查看>>
inux下"没有设置 SVN_EDITOR...."错误解决方法
查看>>
linux普通用户权限设置为超级用户权限方法、sudo不用登陆密码
查看>>
HDU 1421 搬寝室[DP]
查看>>