184-1.8-集合

Collection

iterator

hasnext  是否有下一个元素

next 获取元素,指向后移

collection.remove 删除一个元素后,后续元素自动迁移,所以--》如果两个相同的元素也相邻,使用循环删除第一个元素,第二个迁移会被跳过,没删除。

-- 如果要确保相邻且相同的元素删除,在执行删除的同时 i--,相当于游标回退一次,再次检查。

iterator.remove()--指向谁,删除谁,循环使用,不担心相同且相邻被跳过,光标自动指向。

--增强for--集合--实现了-iterable接口

for(String s :collection ){

}

Collection

1.List 2.Set

--数据结构

1.栈--后进先出

2.队列--先进先出

数组

链表--单向链表--双向链表

ArrayList--底层数组

LinkedList--底层链表

======

泛型

<E>

java5以后出现,解决数据类型不一致问题,编辑阶段就可以发现。

--一种规范与约束

<?>--通配符 都可以

<? extends A> A的子类

<? super B>B的父类

====8.4 Set

TreeSet

比较器Compare

默认的--自定义的

类中定义

匿名内部类定义

 8.5 数据结构

树结构

tree

二叉树

二叉查找树,左侧小,右侧大

二叉平衡树

左右高度差不超过1 

超过了触发

旋转

右右往左

左左往右

右左  先右再左

左右  先左再右----真能折腾

TreeSet --- 红黑树---子节点 左大 或者 右大 都可以 看 Compare 定义

 ------------------------------------------------------牛逼了

 

 

红黑树

规则一大堆

1。根节点是黑色

2。叶节点 黑色(无数值的节点)

3。不能出现两个红色相连

4。每个节点到后代节点简单路径上,黑色节点数量一致

插入默认红色效率最高

新增规则

1.根节点变黑

2.1 父节点黑色,不用动

2.2.1 父节点 红色  叔叔 也是红色 -- 父亲和叔叔变黑 --爷爷变红(爷爷是根节点,则爷爷变黑)

2.2.2 父节点 红色  叔叔 是黑色 --父亲变黑,爷爷变红,以爷爷为支点,旋转

 ------------------------------------------------------牛逼了

 

 

 

 

 

 

 

 

posted @ 2022-03-22 09:08  悟_空  阅读(32)  评论(0)    收藏  举报