大家好,又见面了,我是你们的朋友全栈君。
这些概念太重要了,虽然很不起眼,但是几乎所有地方都要用,一旦不清楚,会对一个问题审视错误。
集合
:元素汇聚在一起,就构成了一个集合。
假设有集合A和集合B。
映射
:将A中的每一个元素,根据一个规则,对应到B中的一个元素去,比如A中是一些儿女,B中是他们的父亲,那么每一个A中的元素都可以对应到B中的唯一一个元素,这就是一种规则,即映射。因为一个人的爸爸只有一个,但是反之未必,因为一个爸爸可能有多个儿女。
我们发现,这个和函数的概念非常相似,集合A相当于定义域,映射相当于f。但是集合的概念更加宽泛,正如前面所有,集合A可以是一些名字什么的,但是函数的定义域必须是数字。
定义好了映射的概念之后,根据映射的特点,我们可以对映射继续分类:
单射
:对于一个映射,如果给定集合A中的两个不同的元素,经过映射后,得到了B中的两个元素,如果这两个元素不相同,就称这个映射是单射。
注:上面的例子不是单射,因为两个孩子有可能对应到一个爸爸。
满射
:对于一个映射,如果集合B中的每一个元素都会被A中的某个元素映射到,那么就称这个映射是满射。
注:上面的例子是满射,因为B中是A中元素的父亲,所以给定一个父亲,会被A中某个儿女映射到。但是,如果我在B中随便加一个别人的(不是A中的)父亲的名字,那么这个父亲就不会被A中的儿女映射到,也就是多余了。这个时候就不是满射了。
双射
:对于一个映射,如果既是单射,又是满射,则称这个映射是双射。
注:上面的例子不是双射。
总结:
映射
使得集合A不多余,即每一个都会被映射到B中去,但是B可能有多余,且不限个数。
单射
使得集合B中的元素个数大于等于A中的元素个数。
满射
使得集合A中的元素个数大于等于B中的元素个数。
双射
使得集合A的元素个数等于B中的元素个数。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/135705.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...