如果一个程序只包含固定数量的且其生命期都是己知的对象. 那么这是一个非常简单的程序。

通常,程序总是根据运行时才知道的某些条件去创建新对象。在此之前,不会知道所需对象的数量,甚至不知道确切的类型。为解决这个普遍的编程问题,需要在任意时刻和任意位置创建任意数量的对象。所以,就不能依靠创建命名的引用来持有每一个对象,因为你不知道实际上会需要多少这样的引用。

大多数语言都提供某种方法来解决这个基本问题。Java 有多种方式保存对象(应该说是对象的引用)。例如数组,它是编译器支持的类型。数组是保存一组对象的最有效的方式,如果你想保存一组基本类型数据,也推荐使用这种方式。但是数组具有固定的尺寸,而在更一般的情况中, 你在写程序时并不知道将需要多少个对象, 或者是否需要更复杂的方式来存储对象,因此数组尺寸固定这一限制显得过于受限了。

Java 实用类库还提供了一套相当完整的容器类来解决这个问题,其中基本的类型是ListSet、 QueueMap. 这些对象类型也称为集合类,但由于 Java 的类库中使用了Collection这个名词来指代该类库的一个特殊子集,所以我使用了范围更广的术语 “容器” 称呼它们。容器提供了完善的方法来保存对象,你可以使用这些工具来解决数量惊人的问题。

容器还有其他一些特性。例如,Set对子每个值都只保存一个对象,Map是允许你将某些对 象与其他一些对象关联起来的关联数组,Java容器类都可以自动地调整自己的尺寸。因此,与数组不同,在编程时,你可以将任意数量的对象放置到容器中,并且不需要担心容器应该设置为多大。
即使在Java中没有直接的关键字支持气容器类仍旧是可以显著增强你的编程能力的基本工具。

2017-12-31 内容来自《Java编程思想》

最新文章

  1. [NHibernate]第一个NHibernate的应用配置
  2. ant安装(linux)
  3. C#基础-css行内元素、块级元素基础
  4. Asp.net web form 动态生成控件的注意事项
  5. SQL with PL/SQL
  6. 《Python 学习手册4th》 第十五章 文档
  7. Linux学习2
  8. 关于asp.net会话阻塞
  9. NSURLConnection基本使用
  10. PHP学习(3)—在HTML中嵌入PHP
  11. MySQL之数据备份、pymysql模块
  12. 分析Json/Xml的解析过程
  13. Python-wxpy继承关系
  14. 根据指定条件使CheckBox 无法选中
  15. 移动端效果之ScrollList
  16. excel文件批量重命名
  17. Java String, StringBuffer和StringBuilder实例
  18. BZOJ 1009: [HNOI2008]GT考试(kmp+dp+矩阵优化)
  19. linux page table entry struct
  20. day6:vcp考试

热门文章

  1. 【POJ1741】Tree(点分治)
  2. ER-18
  3. 【learning】中国剩余定理
  4. android ndk 编译的时候指令集的选取
  5. 【数学】【P5077】 Tweetuzki 爱等差数列
  6. [转]从头开始 GAN
  7. UESTC--1730
  8. 洛谷P1029 最大公约数和最小公倍数问题
  9. tomcat8 的 websocket 支持
  10. ELK Betas 6.0安装及使用