当前位置:恩施知识网 > 健康之路 > 正文

三分类数据集,集合数据的类型有哪些

3.集合Pascal语言是少数几种将集合作为内部数据类型的程序设计语言之一。
集合与数学中的集合相似,是指具有相同性质的对象的全体。组成集合的每个对象称为集合的元素。集合的特性:集合中的元素是互异的,也就是说相同的元素视为一个元素(互异性)集合中的元素是无序的,即{1,2,3,4,5}和{5,4,3,2,1}是同一个集合(无序性)集合中元素的个数不能超过256个元素和集合的关系是“属于”或“不属于”3.1集合类型的定义定义格式:type = set of ;说明:基类型是集合中的元素的类
3.集合

Pascal语言是少数几种将集合作为内部数据类型的程序设计语言之一。

集合与数学中的集合相似,是指具有相同性质的对象的全体。组成集合的每个对象称为集合的元素。集合的特性:

集合中的元素是互异的,也就是说相同的元素视为一个元素(互异性)集合中的元素是无序的,即{1,2,3,4,5}和{5,4,3,2,1}是同一个集合(无序性)集合中元素的个数不能超过256个元素和集合的关系是“属于”或“不属于”3.1集合类型的定义

定义格式:

type = set of ;

说明:

基类型是集合中的元素的类型,可以是字符型、布尔型、枚举类型和子界等顺序类型,不能是整型、实型和其他类型。若基类型是枚举或子界类型,则必须先定义基类型,再定义集合类型。

如:

type week = (sun, mon, tue, wed, thu, fri, sat); age = 0..99; CharSet = set of char; WeekSet = set of weel; AgeSet = set of age; TenSet = set of 1..10; LetterSet = set of 'A'..'z';

集合在内部以位的形式存储其元素,所以在运行速度上和内存利用上更高效。集合如果少于32个元素,会直接存储在CPU的寄存器中,效率会更高。

3.2集合类型变量的声明

集合类型变量的声明与其他类型变量的声明完全相同。

如:

var w1, w2: WeekSet;

也可以不经过类型定义,直接声明集合类型的变量:

var n1, n2: set of (sun, mon, tue, wed, thu, fri, sat); a1, a2: set of 0..99;3.3集合变量的取值

集合变量的取值称为集合值,形式如下:

[, , ..., ]

如果集合的基类型有n个元素,则该集合的取值有2的n次幂个,其中包含一个空集合([])。

3.4集合类型的运算

已知两个相同基类型的集合S1和S2,其元素x,则集合运算法则如下:

1.算术运算

运算

表达式

运算结果

满足交换律

S1 S2

两个集合中所有不重复的元素组成的新集合

S1*S2

两个集合中所共有的元素组成的新集合

S1-S2

所有属于S1但不属于S2的元素的集合

2.逻辑运算

运算

表达式

运算结果

满足交换律

相等

S1 = S2

如果S1和S2所包含的元素完全相同,则为真

不等

S1 S2

如果S1和S2所包含的元素不完全相同,则为真

包含

S1 >= S2

如果S2中的每个元素都在S1中,则为真

被包含

S1

如果S1中的每个元素都在S2中,则为真

属于

x in S1

如果元素x被包含在S1中,则为真

集合运算的优先级:

优先级

运算符

操作数

结果

*

集合

集合

、-

集合

集合

=、、>=、

集合

逻辑

最低

in

左操作数是元素,右操作数是集合

逻辑

示例:利用集合实现输入成绩,输出评定等级。界面如下图:

代码如下:

procedure TForm1.Button1Click(Sender: TObject);type TScore = 0..10; Grade = set of TScore;var Bjg, Jg, Zhong, Liang, You: Grade; Score: Real; ScoreDiv10: Integer;begin // 评定按钮单击事件 Bjg := [0, 1, 2, 3, 4, 5]; Jg := [6]; Zhong := [7]; Liang := [8]; You := [9, 10]; Score := StrToFloat(Edit1.Text); ScoreDiv10 := Trunc(Score / 10); if ScoreDiv10 in Bjg then Label2.Caption := '不及格'; if ScoreDiv10 in Jg then Label2.Caption := '及格'; if ScoreDiv10 in Zhong then Label2.Caption := '中'; if ScoreDiv10 in Liang then Label2.Caption := '良好'; if ScoreDiv10 in You then Label2.Caption := '优秀';end;

三分类数据集,集合数据的类型有哪些

redis的五种数据类型是什么?

如下:

一、string

string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。

string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。

string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。

命令: SET 和 GET 命令。

二、hash 

Redis hash 是一个键值(key=>value)对集合。

Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。

HMSET, HGET 命令,HMSET 设置了两个 field=>value 对, HGET 获取对应 field 对应的 value。

三、list

列表是简单的字符串列表,按照插入顺序排序。可以添加一个元素到列表的头部(左边)或者尾部(右边)。
列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。

lpush 设置值,lrange取值。

四、set

redis的set是string的无序集合。集合通过哈希表实现。

添加一个string元素到key对应的set集合中,用 sadd命令。返回1表示成功,0表示在集合中已存在,返回错误表示key对应的set不存在。

查看用smembers 命令。

集合内元素的唯一性,第二次插入的元素将被忽略。

集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。

五、zset 

redis的zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。

不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。

添加元素到集合,元素在集合中存在则更新对应score:zadd key score member。

Redis数据模型:

Redis的外围由一个键、值映射的字典构成。与其他非关系型数据库主要不同在于:Redis中值的类型不仅限于字符串,还支持如下抽象数据类型:

1、字符串列表。

2、无序不重复的字符串集合。

3、有序不重复的字符串集合。

4、键、值都为字符串的哈希表。

值的类型决定了值本身支持的操作。Redis支持不同无序、有序的列表,无序、有序的集合间的交集、并集等高级服务器端原子操作。

三分类数据集,集合数据的类型有哪些

5种数据类型

Redis支持5种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
① 简介:String是Redis最基础的数据结构类型,它是二进制安全的,可以存储数字,图片或者序列化的对象,值最大存储为512M
简单使用举例: set key value、get key等
应用场景:共享session、分布式锁,计数器、限流。
② 哈希类型是指v(值)本身又是一个键值对(k-v)结构
简单使用举例:hset key field value 、hget key field
内部编码:ziplist(压缩列表) 、hashtable(哈希表)
应用场景:缓存用户信息等。
③ Redis list 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
底层双向链表,可以通过push和pop操作从列表的头部或者尾部添加或者删除元素,这样List即可以作为栈,也可以作为队列
lpush+lpop=Stack(栈)
lpush+rpop=Queue(队列)
④ Redis set是string类型的无序集合。不包含重复元素
⑤ Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。但sorted set可以通过用户额外提供一个优先级(score)的参数来为成员排序,并且是插入有序的,即自动排序。
Redis sorted set的内部使用ziplist或跳表,跳表组合了skiplist和hash,HashMap里放的是成员到score的映射,而跳表里存放的是所有的成员,
跳表就是在链表的基础上,增加多级索引提升查找效率。
跳表支持平均 O(logN),最坏 O(N)复杂度的节点查找,还可以通过顺序性操作批量处理节点。
免责申明:以上内容属作者个人观点,版权归原作者所有,不代表恩施知识网立场!登载此文只为提供信息参考,并不用于任何商业目的。如有侵权或内容不符,请联系我们处理,谢谢合作!
当前文章地址:https://www.esly.wang/jiankang/43070.html 感谢你把文章分享给有需要的朋友!
上一篇:紧张恋爱 小说,爱情治愈微小说 下一篇:情侣相处明明不爱了为什么还不愿意分手,一个人已经不爱了提分手也不同意

文章评论