java集合专题

首先大的集合分为:List,Set,Map三种,其中List与Set是继承自Collection,而Map不是。

List与Set的区别:List中的元素有存放顺序,并且可以存放重复元素,检索效率高,插入删除效率低,Set没有存放顺序,而且不可以存放重复元素,后来的元素会把前面重复的元素替换掉,检索效率低,插入删除效率高。(Set存储位置是由它的HashCode码决定的,所以它存储的对象必须有equals()方法,而且Set遍历只能用迭代,因为它没有下标。)

ArrayList:ArrayList集合中元素存储的位置是连续的,所以查询起来会比较快捷,但是执行插入删除操作会比较麻烦一点,会引起其他元素位置的变化。注意:list中存储的是对象的引用,而不是对象本身

LinkedList:ArrayList是互补的,所以ArrayList的优点就是LinkedList的缺点,ArrayList的缺点就是LinkedList的优点。特点:LinkedList中元素位置是任意的,所以执行插入删除操作效率较高,查询效率较低

HashSet:在用Set集合的时候我几乎用的都是HashSet,HashSet是使用Hash表实现的,集合里面的元素是无序得,可以有null值,但是不能有重复元素。特点:因为相同的元素具有相同的hashCode,所以不能有重复元素

TreeSet:TreeSet是用二叉树结构实现的集合。特点:集合中的元素是有顺序得,不允许放入null,同样不能放入重复元素。

HashMap:经常遇到需要使用键值对存储的场景,而HashMap是用得最多的一种键值对存储的集合。特点:HashMap允许空键值,并且它是非线程安全的,所以插入、删除和定位元素会比较快。

TreeMap:TreeMap是基于红黑树实现的,适用于按自然顺序火兹定于顺序遍历key。

HashTable:HashTable是基于HashCode实现的,但它是线程安全的,所以会比HashMap效率低,而且不允许null值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值