1、空属性 两个值:null(默认的)和not null(不为空) 数据库默认字段基本都是字段为空,但是实际开发时,尽可能保证字段不为空,因为数据为空没办法参与运算 示例:创建一个班级表,...,可以使用复合主键 6、自增长 auto_increment:当对应的字段,不给值,会自动的被系统触发,系统会从当前字段中已经有的最大值+1操作,得到一个新的不同的值 auto_increment...在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单 索引的作用相当于图书的目录...索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序 数据库使用索引以找到特定值,然后顺指针找到包含该值的行。...唯一键的本质和主键差不多,唯一键允许为空,而且可以多个为空,空字段不做唯一性比较 关于唯一键和主键的区别:主键更多的是标识唯一性的,而唯一键更多的是保证在业务上,不要和别的信息出现重复
:00 ---- 一、MongoDB 使用规范与限制 MongoDB 灵活文档的优势 灵活库/集合命名及字段增减 同一字段可存储不同类型数据 Json 文档可多层次嵌套文档 对于开发而言最自然的表达...分片集合不允许创建普通(不含分片 key 前缀)唯一性索引 1.7 多文档事务限制(>= 4.0) 不支持系统库(config、local、admin)里的集合 事务不支持元数据操作的修改(如 drop...,加快资源的释放 默认事务申请锁等待时间 5 ms 如果超时即崩溃退出 1.8 其他限制 全集合扫描排序的内存限制 32 MB [否则报错] 最佳实践: 为排序添加索引;控制排序数据量 Aggregation...js 脚本集,提供了丰富的数据校验功能 功能特点: 输出结果简单清晰 可指定过滤条件及限制文档数量 可正反序对集合进行分析 可对部分字段进行排除 可指定对嵌套文档的分析深度 可指定输出格式及持久化分析结果...如何理解分片集合不能创建普通唯一性索引? 普通唯一性索引只能在单分片中起到唯一性约束的作用,跨分片无法做唯一性检查或者说实现代价太大。
key进行排序 └———IdentifyHashMap 二、List和Set集合详解: 1.list和set的区别: 2.List: (1)ArrayList:底层数据结构是数组,查询快,增删慢,...根据构造方法不同,分为自然排序(无参构造)和比较器排序(有参构造),自然排序要求元素必须实现Compareable接口,并重写里面的compareTo()方法,元素通过比较返回的int值来判断排序序列,...public Vector(int initialCapacity)//构造一个空向量,使其内部数据数组的大小,其标准容量增量为零。 public Vector(Collection<?...为快速查找而设计的Set,我们通常都应该使用HashSet,在我们需要排序的功能时,我们才使用TreeSet。...两种方式排序:自然排序和比较器排序 各种集合对比 List和Set对比总结 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/134153.html原文链接:https
这里的“侧重点”是指当使用CBO来计算目标SQL各条执行路径的成本值时,计算成本值的方法会随着优化器模式的不同而不同。 Oracle中,优化器的模式是由参数OPTIMIZER_MODE的值来决定的。...2、结果集: 指包含指定执行结果的集合。对RBO来说,对应的执行计划中没有对相关执行步骤对应的结果集的描述,虽然结果集的概念对RBO也是适用的。...(2)、索引范围扫描:INDEX RANGE SCAN,当扫描的对象是唯一性索引时,目标SQL的where条件一定是范围查询(谓词条件为BETWEEN、等);当扫描的对象是非唯一性索引时,对目标SQL...目标表1 join 目标表2 on (连接条件) 目标表1 join 目标表2 using (连接列集合) 注意:对于使用JOIN USING的标准SQL而言,如果连接列同时又出现在查询列中,则该连接列前不能带上表名或者表名的别名...目标表1 natural join 目标表2 相当于:目标表1 join 目标表2 using (目标表1和目标表2的所有同名列集合) (2)、外连接 左连接:目标表1 left outer join
1.2、Set类型集合特点 集合中的元素不可重复,无索引,有没有序要看Set接口具体的实现类是谁。 ...保证元素唯一性的原理:判断元素的hashCode值是否相同。 如果相同,还会继续判断元素的equals方法,是否为true。...2.2、HashSet特点 不能保证元素的排列顺序,顺序可能和添加的顺序不同,顺序也有可能发生变化。 ...2.3、HashSet如何保证元素唯一性的原理 当我们想要创建一个集合,该集合里面的元素都具有唯一性时。...4)将自定义类的对象存入HashSet去重复 类中必须重写hashCode()和equals()方法 hashCode(): 属性相同的对象返回值必须相同, 属性不同的返回值尽量不同
* LinkedHashMap:底层链表+哈希表结构,有序的(存取顺序一致) * 这里是两个泛型,这里的K和V可以相同 也可以不同 *...和Collection集合 没有继承关系 * map集合中是没有迭代器 * * 2.java为map集合提供了另外两种迭代的方式: * 方式一:以键找值的方法...一般在开发的时候不需要对存储的元素排序,所有在开发的时候大多用HashSet,HashSet的效率比较高 TreeSet在面试的时候比较多,问你有几种排序方式,和几种排序方式的区别? 2....TreeSet保证元素的唯一性依据 在实现的Comparable的compareTo或者Comparator的compare方法中,如果这两个方法的返回值为0,那么TreeSet就认为这两个元素一样...按照Set的唯一性规则,在一次重复的元素不能被添加到TreeSet这个集合中。 2). TreeSet的两种排序方式 (1).
这意味着,插入、删除和查找操作的时间复杂度为 O(log n),其中 n 是集合中的元素个数。由于红黑树的平衡性质,这些操作的性能是可预测的。 3....指定排序方式的构造函数 您可以使用带有 Comparator 参数的构造函数来指定元素的排序方式。...这样,您可以控制元素的排序方式,而不仅仅依赖于自然顺序。 8.4. 性能考虑 TreeSet 的插入、删除和查询操作的平均时间复杂度为 O(log n),其中 n 是集合中的元素数量。...总之,TreeSet 是一个强大的有序集合,但在使用时需要注意其唯一性、排序方式、性能、并发性等方面的问题。根据具体需求选择合适的集合类型,并确保正确处理和操作数据以避免潜在的问题。 9....通过示例代码,我们演示了如何使用 TreeSet 来解决不同场景的问题,如存储成绩和记录考试排名。希望本文能帮助您更好地理解和应用 TreeSet,并在实际开发中充分利用它的有序性和唯一性特点。
有人想有可以自动扩展的数组,所以有了List。 有的人想有没有不重复的数组,所以有了set。 有人想有自动排序的组数,所以有了TreeSet、TreeList、Tree**。...这是由于集合以Object形式来存储它们的元素。 2、一个数组实例具有固定的大小,不能伸缩。集合则可根据需要动态改变大小。 3、数组是一种可读/可写数据结构,没有办法创建一个只读数组。...加入Set的元素必须定义equals()方法以确保对象的唯一性。Set与Collection有完全一样的接口。Set接口不保证维护元素的次序。 HashSet:为快速查找设计的Set。...标准的Java类库中包含了几种不同的Map:HashMap,TreeMap、LinkedHashMap、WeakHashMap、IdentityHashMap。...三、它们的区别 3.1、Collection和Map的区别 容器内每个为之所存储的元素个数不同。Collection类型,每个位置只有一个元素。
很多时候因为优化的关系,使得语句最终的物理执行顺序和逻辑顺序不同。按照逻辑顺序,有些应该先执行的过程,可能优化器会指定它后执行。...这一步是将数据复制到内存中相同的临时表结构中进行的,不过该临时表多出了一个唯一性索引列用来做重复消除。 (11).对vt10进行排序,排序后的表为虚拟表vt11。...一方面,关系和元素都需要有唯一标识的名称,因此表和列也要有名称,即使表表达式也如此。像派生表是嵌套在语句中的,无法在外部给它指定表明,因此必须为它指定一个表别名。...(2).在group by子句中可以指定分组列的升序和降序排序。 无论是标准SQL还是MySQL、mariadb,group by分组的时候,都会按照分组列升序排序。...只不过标准SQL中只能使用默认的升序,而MySQL、mariadb可以自行指定排序方式。
面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,Java就提供了集合类。 数组和集合类同是容器,有何不同?...二、不同的集合类 集合是存储多个元的,由于存储多个元素我们也是有不同需求的:比如,我要这多个元素中不能有相同的元素,再比如,我要这多个元素按照某种规则排序一下。...:判断集合中是否包含指定的元素 boolean containsAll(Collection c):判断集合中是否包含指定的集合元素(是一个还是所有) boolean isEmpty()...:判断集合是否为空 4:获取功能 Iterator iterator()(重点) 5:长度功能 int size():元素的个数 面试题:数组有没有length()...于是在使用迭代器遍历Set时,结果会按元素插入的次序显示。 三、总结与注意 Collection 和 Map 的区别 容器内每个为之所存储的元素个数不同。
hashCode()方法会根据不同的对象生成不同的哈希值,默认情况下为了确保这个哈希值的唯一性,是通过将该对象的内部地址转换成一个整数来实现。 ...但是stu1和stu2的hashCode()返回值不同,那么它们将会被存储在stuSet中的不同的位置。 ...)); } } /* output: name:sakura age:19 name:sakura age:20 name:sakura age:21 */ 实现了comparaTo()方法使用age为标准升序排序...也可以以name为标准排序,或者其他自定义的比较依据。 ...有没有其他方便的比较方法,实现对象的大小比较。 办法是有的,那就是实现Comparator接口。
;如果比较的内容不相等,那么就是不同的对象,就该存储了,此时就要采用哈希的解决地址冲突算法,在当前hashCode值处类似一个新的链表, 在同一个hashCode值的后面存储存储不同的对象,这样就保证了元素的唯一性...根据构造方法不同,分为自然排序(无参构造)和比较器排序(有参构造),自然排序要求元素必须实现Compareable接口,并重写里面的compareTo()方法,元素通过比较返回的int值来判断排序序列,...public Vector(int initialCapacity)//构造一个空向量,使其内部数据数组的大小,其标准容量增量为零。 public Vector(Collection<?...TreeSet支持两种排序方式,自然排序 和定制排序,其中自然排序为默认的排序方式。向 TreeSet中加入的应该是同一个类的对象。...初始容量大小和每次扩充容量大小的不同 : ①创建时如果不指定容量初始值,Hashtable 默认的初始大小为11,之后每次扩充,容量变为原来的2n+1。HashMap 默认的初始化大小为16。
set意为集合,在高中我们学习过集合的三大性质:确定性、互异性、无序性。在C++的STL中的集合,容器内会默认按照“升序”排列,但同样遵循确定性和互异性。...C++ STL SetSet是C++标准模板库(STL)中较为重要的容器,原生支持有序,唯一。一个大小为n的set所需的空间约为nlogn个单位。set的插入、删除、查找操作复杂度均为O(logn)。...关键特性唯一性:Set容器内的元素都是唯一的,也就是说,每个元素都是不同的有序性:Set容器内的元素总是排序的,向Set中添加元素,它将自动插入到正确的位置中,不需要手动排序查找/插入快速:因为Set容器的元素是排序的...,所以在Set中查找和插入元素都很快适用场景Set容器的有序性和唯一性特性极大地减少了大量重复和排序等工作,在很多场景下Set容器更具优势,下列情况是使用Set容器合适的情况:存储元素类型不能够重复的场景...,比如存储用户的唯一ID操作多个对象时,必须使用排序算法的场景需要快速查找和插入元素的场景通过Set容器,可以快速获取唯一和有序的结果,同时在大数据量下性能也相对较高,因此使用场景广泛。
通过equals方法和hashCode方法来保证元素的唯一性。... 不同:就直接把元素添加到集合 TreeSet: 线程不安全,可以对Set集合中的 元素进行排序。...(可以get获取指定的),而是先转成Set集合,在通过迭代获取元素 Map集合中键要保证唯一性 Hashtable:线程安全,速度慢,不允许存放null键,null值,已被HashMap替代。...键是红黑树结构,可以保证键的排序和唯一性 LinkedHashMap: Map 接口的哈希表和链接列表实现,具有可预知的迭代顺序。...两种方式排序:自然排序和比较器排序 Properties集合 Properties作为Map集合的使用 Properties的特殊功能 •public Object setProperty(String
---|HashMap: 底层是哈希表数据结构,线程是不同步的,可以存入null键,null值。 要保证键的唯一性,需要覆盖hashCode方法,和equals方法。...3、判断: 1、boolean isEmpty() 长度为0返回true否则false 2、boolean containsKey(Object key) 判断集合中是否包含指定的key...Set> entrySet() 面向对象的思想将map集合中的键和值映射关系打包为一个对象,就是Map.Entry ,将该对象存入Set集合,Map.Entry是一个对象,...要保证键的唯一性,需要覆盖hashCode方法,和equals方法。 案例:自定义对象作为Map的键。...(假设姓名和年龄一直的人为相同的人,如果想要对人按照年龄的大小来排序,如果年龄相同的人,需要如何处理?不能直接return 0,以为可能姓名不同(年龄相同姓名不同的人是不同的人)。
特点:允许使用null值和null键,该集合是线程不同步的,JDK1.2出现,效率高。 Map集合的两种取出方式 Map集合的取出原理:将Map集合转成Set集合,再通过迭代器取出。 ...注意:姓名和年龄相同的视为同一个学生。 保证学生的唯一性。 思路: 1.描述学生; 2.定义Map容器。将学生(唯一性)作为键,地址作为值,存入; 3.获取Map集合中的元素。...特点:线程不同步,可以同时给Map集合中的键进行排序。 案例 import java.util.*; /* 目标: 每一个学生都有对应的归属地。 学生Student,地址String。...注意:姓名和年龄相同的视为同一个学生。 保证学生的唯一性。 并且对学生对象大的年龄进行升序排序。 思路: 因为数据是以键值对形式存在的, 所以要使用可以排序的Map集合:TreeMap。...那么就获取该次数并进行自增,然后将该字母和自增后的次数存入到Map集合中。原理:覆盖已有键对应的值。 4.将Map集合中的数据变成指定的字符串形式返回。
2)HashSet集合的基本使用 (4)HashSet集合保证元素唯一性源码分析 1)HashSet集合保证元素唯一性的原理 ①根据对象的哈希值计算存储位置 i.如果当前位置没有元素则直接存入; ii....②当前元素的元素和已经存在的元素比较哈希值 i.如果哈希值不同,则将当前元素进行存储; ii.如果哈希值相同,则进入第三步。...2)HashSet集合保证元素唯一性的图解 (5)常见数据结构之哈希表【理解】 (6)LinkedHashSet集合概述和特点 1)LinkedHashSet集合特点 ①哈希表和链表实现的Set接口,具有可预测的迭代次序...2)LinkedHashSet集合基本使用 NO2.Set集合排序 (1)TreeSet集合概述和特点【应用】 1)TreeSet集合概述 ①元素有序,可以按照一定的规则进行排序,具体排序方式取决于构造方法...i.TreeSet():根据其元素的自然排序进行排序; ii.TreeSet(Comparator comparator) :根据指定的比较器进行排序。
特点:允许使用null值和null键,该集合是线程不同步的,JDK1.2出现,效率高。 Map集合的两种取出方式 Map集合的取出原理:将Map集合转成Set集合,再通过迭代器取出。...注意:姓名和年龄相同的视为同一个学生。 保证学生的唯一性。 思路: 1.描述学生; 2.定义Map容器。将学生(唯一性)作为键,地址作为值,存入; 3.获取Map集合中的元素。...特点:线程不同步,可以同时给Map集合中的键进行排序。 案例 import java.util.*; /* 目标: 每一个学生都有对应的归属地。 学生Student,地址String。...注意:姓名和年龄相同的视为同一个学生。 保证学生的唯一性。 并且对学生对象大的年龄进行升序排序。 思路: 因为数据是以键值对形式存在的, 所以要使用可以排序的Map集合:TreeMap。...4.将Map集合中的数据变成指定的字符串形式返回。
面向对象对事物的体现都是以对象的形式,为了方便对多个对象的操作,就对对象进行存储。 集合就是存储对象最常用的一种方式. (2)数组和集合都是容器,两者有何不同?...可以对Set集合中的元素进行排序。元素有序、线程不同步。...值; 线程不同步,效率高; 保证元素唯一性的: 原理:先判断元素的hashCode值是否相同,再判断两元素的equals方法是否为true (往HashSet里面存的自定义元素要复写hashCode...和equals方法, 以保证元素的唯一性!)...(3)Vector |--->构造方法摘要: Vector(): 构造一个空向量,使其内部数据数组的大小为 10,其标准容量增量为零。
,有兴趣的可以关注一下 二、set和multiset 在C++标准模板库(STL)中,set和multiset是两种关联容器,它们在处理有序集合数据时非常有用。...如果允许集合中存在重复元素,那么应该选择multiset。 三、map和multimap 在C++的STL(标准模板库)中,map和multimap是两种关联容器,它们用于存储键值对。...而multimap允许相同的键对应多个值,提供了一种更灵活的数据存储方式。 排序:两者都按照键的自然顺序进行排序,通常为升序。可以通过自定义比较函数来改变排序规则。...2. map与multimap的使用场景 map通常用于需要确保键的唯一性且需要对键进行排序的场景。例如,统计不同类别的数据数量、实现字典等。...自定义排序可以通过传递比较函数来实现。 插入与删除:使用insert方法插入键值对,erase方法删除键值对。erase方法还可以用于删除指定范围内的元素。
领取专属 10元无门槛券
手把手带您无忧上云