集合框架中的一些常用集合类的对比

1List接口下的ArrayList, LinkedList,Vector有什么不同

这三个都是在List接口下,它们的共同特征
1.元素可以重复
2.元素有顺序
3.可以为null
4.可以通过索引访问 List 对象容器中的元素

底层实现方法
ArrayList和Vector都是基于素组实现的
LinkedList底层实现是双向循环链表

所以在遍历效率上ArrayList和Vector要高于LinkedList,但是在操作上,比如插入,删除等它们的效率就不如LinkedList

那么ArrayList与Vector的去区别在哪呢?
Vector是古老的集合类,它很多方法都是被synchronized修饰的,所以它的效率要比ArrayList低

2.Set接口下的HashSet,TreeSet的区别

这两个是Set接口下的两个实现类,它们的共同特征
1.集合中不允许有重复元素
2.集合中元素没有顺序
3.不能通过索引访问元素

2.1 HashSet特点
它可以通过hashcode和equals方法来判断元素是否重复的,我们可以通过重写这两个方法来达到一定的使用效果,比如放入两属性不同的相同对象

2.2 TreeSet特点
它这里还实现了SortedSet从而使集合中元素安照一定的规律排序,这个规律是一种算法得到的,它这里的排序是通过元素类实现Comparable接口的comperTo方法,对于表达式 x.compareTo(y),如果返回值为 0,则表示 x 和 y 相等;如果返回值大于 0,则表示 x 大于 y;如果返回值小于 0,则表示 x 小于 y。TreeSet 集合调用对象的 compareTo()方法比较集合中的大小,然后进行升序排列,

当然我们通过实现compareTo()方法,也可以实现放入一些两属性不同的相同对象元素

3.Map接口下的HashMap,TreeMap的区别

这两个是Map下的两个实现类,它们的特征
1.键不能重复,值可以重复
2.Key 和 Value 之间存在单向一对一关系,即通过指定的 Key,可以找到唯一对应的 Value。
3.如果把 Map 中的所有 Key 放在一起,就能组成了一个 Set 集合(所有 Key 没有顺序,而且不能重复)

3.1 HashMap特点

和 HashSet 一样,要求当两个键对象通过 equals()方法比较为 true 时,这两个键对象的 hashCode()方法返回的哈希码也一样。因此,我们应该在作为 Key的类中重写 hashCode()和 equals()方法。

3.2 TreeMap特点
和TreeSet一样,要求键对象排序,我们应该在Key类中实现Comperable接口的comperTo方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值