Java基础学习记录--Collections框架

Java Collections 框架中包含了大量集合接口以及这些借口的实现类和操作它们的算法,主要提供了List(列表)、Set(集合)、Queue(队列)、Stack(栈)和Map(映射表)

下面对于Set、Lis和Map三个接口进行介绍

Set表示数学意义上的集合概念,主要的特点是集合中的元素不能重复。有2个实现类,HashSet和TreeSet(实现了SortedSet,因此它的元素是有序的)

List称为有序的Collection。可以保存重复的对象,能够对列表中每个元素的插入和删除位置进行精确的控制,LinkedList、ArrayList和Verctor都实现了List接口

Map提供一个从键映射到值的数据结构,用于保存键值对,键唯一,值可以重复。它的实现:HashMap基于散列表实现的,LinkedHashMap采用列表来维护内部的顺序,TreeMap基于红黑树的数据结构来实现。

下面讲讲LinkedList、ArrayList和Verctor的区别?

ArrayList和Verctor会在内存中开辟一块连续的空间来存储,因为数据存储连续,所以支持用序号(下标)来访问元素,同时索引数据的速度比较快。但是在插入元素时,需要移动容器中的元素,所以对数据的插入操作执行比较慢。ArrayList不是线程安全的,而Verctor是线程安全的。

LinkedList是采用双向列表实现的,非线程安全,插入效率高,因为对数据索引需要从头开始遍历,访问效率则比较低。

下面讲讲Map实现类的区别?

HashMap是最常用的,根据键就能获取值,访问速度快

HashMap和HashTable的区别?

HashMap是HashTable的轻量级实现,HashMap允许空(null)键值(最多只允许一条记录的键值为null),而HashTable不允许。

HashMap把HashTable的contains方法改成了containsValue和containsKey

HashTable继承自Dictionary,而HashMap是Java1.2引进的Map接口的一个实现

HashTable使用Enumetation,HashMap使用Iterator

HashTable中hash数组默认大小11,HashMap中hash数组默认大小16

HashTable线程安全的,HashMap中hash线程不安全的

TreeMap实现了SortMap接口,能够把它保存的记录根据键排序,LinkedHashMap是HashMap的一个子类,如果需要输出的顺序和输入的相同可以使用,WeekHashMap与HashMap类似,不过它的key采用"弱引用",只要key不被外部引用,就可以被垃圾回收期回收。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值