Java 集合类 总结

集合总结:

Collection

Boolean addAll(Collection<?> c):并

Boolean removeAll(Collection<?> c):差

Boolean retainAll(Collection<?> c):交

PriorityQueue未实现Cloneable接口,但实现了Serializable接口

其余的都实现了CloneableSerializable接口

线性表(list):[可以存储相同的元素][利用LinkedIterator双向遍历]

LinkedList(链表):利用链表存储元素, 在起始位置插入或者删除元素效率比较高。链表有get(i)方法,但是比较耗时,应该使用迭代器(foreach)。

ArrayList(顺序表):利用数组(动态创建)存储元素,通过下标随机访问元素效率高,但是频繁的插入或者删除元素(尤其是在线性表起始位置)效率低下。容量可以自动增大,但是不能自动减小,可以使用trimToSize()减小,线程不安全的(不同步的)。

Vector:线程安全的(同步的).

Stack(栈s)

集合(set):[处理和存储无重复元素][利用Iterator向后遍历]

HashSet(散列集):【插入时无序】初始容量为16,负载系数0.75,当集合内元素达到16*0.75=12时,集合的容量就会自动翻倍.添加到集合中的对象必须以一种正确分散的散列码的方式来实现hashCode方法。

LinkedHashSet(链式散列集):【按照插入时的顺序排列】

效率:HashSet>LinkedHashSet

TreeSet(树形集):可以确保集合中的元素是有序的,插入的对象必须是可比较的(实现Comparable或者Comparator接口)

 

无重复元素进行排序:集合比线性表更加高效.

查找:集合比线性表更加高效.

线性表可以通过索引访问元素get(i),而集合不支持索引,遍历集合用Iterator或者foreach。

 

映射表(map):[键值快速查询和获取值][键值对存储的容器]

Set<Map.Entry<K,V>>entrySet() //获取键值对集合

Set<K>keySet() //获取所有键的集合(不可重复)

Collection<V>values() //获取所有值的集合(可重复)

HashMap:定位,插入,删除一个元素,HashMap效率最高.但是没有顺序(不支持排序)

LinkedHashMap:相比HashMap而言,可以按照插入顺序排,也可以按照最后一次被访问时的顺序(早->晚)

TreeMap:键需要是可比较的.默认按键的升序排列.

HashTable:方法是同步的(线程安全的).

以后还会继续补充...(To be Continued...)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值