南京做网站询南京乐识,云服务器建设网站,三合一网站cms,网站建设项目的预表双列集合特点
存放的是键值对对象#xff08;Entry#xff09;
Map
因为都是继承Map#xff0c;所以要学会这些API#xff0c;后面的类就都知道了
put
有两个操作#xff0c;添加#xff08;并返回null#xff09;或者覆盖#xff08;返回被覆盖的值#xff09…双列集合特点
存放的是键值对对象Entry
Map
因为都是继承Map所以要学会这些API后面的类就都知道了
put
有两个操作添加并返回null或者覆盖返回被覆盖的值
remove
根据键删除返回的是被删除的值
其他的无所谓
Map的遍历方式
将keys放到单列集合中取找值 通过键值对 Lambda表达式遍历 HashMap HashMap的底层原理和HashSet一样都是先为长度为16的数组。同时我发现了盲点也就是扩容之后2倍原先的hashcode重新分配位置。
LinkedHashMap
和LinkedSet本质一样
TreeMap 源码解析
CtrlF12查看类成员 右箭头代表继承的方法 上箭头代表重写的方法
添加元素时 数组位置为null resize()函数做的事情就是绿色字写的东西。 然后如果使用hashCode计算出来的位置处为null那么重新创建一个保存Key和Value的Node
添加位置不为null且Key并没有重复挂在下面形成链表或者红黑树 添加位置不为null且Key并重复覆盖
主要注意的地方注意只进行V的覆盖并不是全覆盖
可变参数 小细节 1、方法的形参中最多只能写一个可变参数 2、方法中的其他参数一定要写在可变参数前面
Collections注意有s
Collection的工具类看API就行。