java---集合总

在这里插入图片描述

Collections:单列集合(接口)

遍历:1、普通for循环 2、创建迭代器 3、增强迭代器

方法:size()、remove()、removeif()、add()、isEmpty、contains()、clear()

List: (接口) 继承Collections接口

特点:有索引、元素可以重复

方法:增删改查 add、remove、set、get

ArrayList:List接口的实现类

底层实现:数组

特点:查找快(有索引)、增删慢(长度固定,增加元素需要扩容,然后重新将旧的数组赋值给新的数组)

LinkedList:list接口的实现类

底层实现:链表

特点:查找慢(需要一个一个的查找元素)、增加快(通过改变节点里面的地址值)

特有的方法:getf、getl、setf、setl、removef、removel

set:继承Collections接口

特点:没有索引、元素也不能重复

遍历:1、创建迭代器对象 2、增强for循环

方法:继承父类方法

TreeSet:set接口的实现类

底层实现:红黑树

特点:可以排序----需要写排序compare方法

HashSet:set接口的实现类

底层实现:哈希表(数组+链表+红黑树)

哈希值:

如果没有重写Object类的hashCode方法 使用的是本地地址值的比较

重写了Object的方法的话 先根据hash值和数组的长度找到对于的索引位置,然后判断该位置有没有元素

有:equals方法比较两个元素的属性值是否相同 相同就丢弃 不相同就用链表结构存贮

没有:存入

jdk7和jdk8的区别在于:jdk8加了红黑树 当同一个hash值位置的元素超过了8个,就用红黑树存储。

Map双列集合

方法:clear、put(K key,V value)、isEpmty、size、remove(K key)、get(key)、containsKey()、containValue()

遍历:
1、得到键的集合 遍历得到键对应的值

方法:keySet()

2、得到键值对的集合 遍历得到键和键值

方法:entrySet()

HashMap

底层实现:和Hashset一样 哈希表

哈希值:

比较的是键的哈希值 跟值无关

如果没有重写 还是一样比较本地地址值

如果重写了:如果两个元素的键的哈希值相同 则用equals方法比较方法中需要比较的属性值 如果属性值全部相同 则丢弃后面加入的,如果不同,链表结构存储 同一个位置的元素超过八个就使用红黑树

TreeMap

底层实现:红黑树

可以排序—如果没有写compare方法—报错

重写了-----可以根据重写的内容排序,如果重写方法的返回值为0,则覆盖原先的键的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值