Java 容器 回顾

  1. java.util
  2. 容器用于管理对象的生命周期,对象与对象之间的关系;容器类中存放的都是对象的引用,而非对象本身。
  3. 容器vs数组 :
  •  数组时Java的内置数据类型,是一个线性序列,可以快速访问。
  • 一个数组创建后,其容量就固定了,并在其生命周期内不变。
  • Java在运行时会对数组做越界检查。
  • 与容器相比,Java在编译时会做类型检查,防止插入错误类型的对象。
  • 数组效率高于容器类。
  • 数组可以持有基本数据类型。
     4. JAVA里面提供的容器处理对象的时候就好像这些这些对象都没有自己的类型一样,容器将它所含的元素都看成是JAVA中根类Object类型的,这样我们只需创建一种容器就能把所有的类型的对象全部放进去。
     5. 一张图很好的说明了Java的集合框架结构

集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。

  
抽象类:5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。

  
实现类:8个实现类(实线表示),对接口的具体实现。
常用容器类使用注意:
„ 涉及到堆栈,队列等操作,用List
„ 需要快速插入,删除元素,使用LinkedList
„ 需要快速随机访问元素 使用ArrayList „ 需要快速随机访问元素,使用ArrayList
Iterator是Java迭代器最简单实现,只能单向移动
ArrayList和HashMap是异步的,不是线程安全的。
Vector和HashTable是同步的,是线程安全 Vector和HashTable是同步的,是线程安全的
因为同步需要花费机器时间 所以V 和 因为同步需要花费机器时间,所以Vector和HashTable的执行效率要低于 ArrayList和HashMap。
„ ArrayList: 元素单个,效率高,多用于查询
„ Vector: 元素单个,线程安全,多用于查询
„ LinkedList:元素单个 多用于插入和删除 „ LinkedList:元素单个,多用于插入和删除
„ HashMap: 元素成对,元素可为空
„ HashTable: 元素成对,线程安全,元素不可为空 
… 要根据不同问题的需要选择合适的容器,以此来达到功能的要求和效率的最优尽量返回接口而非实际的类型
… 单线程环境中,或者访问仅仅在一个线程中进行,考虑非同步类 其效率较高 虑非同步类,其效率较高
… 多个线程可能同时操作一个类,应使用同步类
… 对哈希表的操作,作为key的对象要正确复写equals和hashCode方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值