1、节点分为红色或者黑色;
2、根节点必为黑色;
3、叶子节点都为黑色,且为null;
4、连接红色节点的两个子节点都为黑色(红黑树不会出现相邻的红色节点);
5、从任意节点出发,到其每个叶子节点的路径中包含相同数量的黑色节点;
6、新加入到红黑树的节点为红色节点;
1、变色:在不违反上述红黑树规则特点情况下,将红黑树某个node节点颜色由红变黑,或者由黑变红;
2、左旋:逆时针旋转两个节点,让一个节点被其右子节点取代,而该节点成为右子节点的左子节点;
3、右旋:顺时针旋转两个节点,让一个节点被其左子节点取代,而该节点成为左子节点的右子节点;
Set
Set集合的简介
Set集合类似于一个罐子,程序可以依次把多个对象“丢进”Set集合,而Set集合通常不能记住元素的添加顺序 。实际上Set就是只是行为略有不同(Set不允许包含重复元素) 。
Set集合不允许包含相同的元素,如果试图把两个相同元素加入同一个Set集合中,则添加操作失败,add()方法返回false,且新元素不会被加入 。
Set集合的特征
Set集合,基础自 。特征是插入无序,不可指定位置访问 。
Set集合的实现类可说是基于Map集合去写的 。通过内部封装Map集合来实现的比如内部封装了 。
Set集合的数据库不能重复(== 或 )的元素 。
Set集合的常用实现类有 、 。
简介
是Set接口的典型实现,大多数时候使用Set集合时就是使用这个实现类 。按Hash算法来存储集合中的元素,因此具有很好的存取和查找性能 。底层数据结构是哈希表 。
特点
具有以下特点:
的存储结构
当向集合中存入一个元素时,会调用该对象的方法来得到该对象的值,然后根据该值决定该对象在中的存储位置 。如果有两个元素通过方法比较true,但它们的方法返回的值不相等,将会把它们存储在不同位置,依然可以添加成功 。
也就是说 。集合判断两个元素的标准是两个对象通过方法比较相等,并且两个对象的方法返回值也相等 。
即:靠元素重写方法和方法来判断两个元素是否相等,如果相等则覆盖原来的元素,以此来确保元素的唯一性 。
是接口的实现类,可以确保集合元素处于排序状态 。
存储结构
内部实现的是红黑树,默认整形排序为从小到大 。
常用方法
与集合相比,还提供了几个额外方法:
排序方式
类的特点:
类没有暴露任何构造器来创建该类的实例,类提供了以下类方法来创建对象 。