数组和容器基础
几乎所有的计算机语言都会用到数组的概念。
一维数组被定义成含有固定数量的相同类型对象的集合,且这些数据(对象)按一定的顺序排列。就这些数据之间而言,是呈线性排列的。
多维数组的定义被看成一维数组的递归定义。即一维数组中的每个元素都是一个数组。
数据一旦被定义,它的维数和大小就被限定了,不再改变。因此,出了结构的初始化和销毁外,数组只能存取元素和修改元素值得操作。
需要注意的是,Java中的数组和C和C++是不同的。其最大的不同是Java有一个重要的目标是数组的安全性。Java确保数组会被初始化,而且不能在它的范围外访问。而C中,能直接通过指针访问数组之外的数据,显然是不安全的。
数组是保存一组对象(应该说是对象的引用)的很有效的方式,它是编译器直接支持的类型。但是,数组数组具有固定的大小,而在一般的情况下,你在写程序的时候并不知道将需要多少个对象,或者时是否需要更复杂的方式来储存对象,因此数组尺寸固定这一限制限制了它的使用。为解决这一问题,Java类库提供了一套很完整的方式来持有对象----容器(Collection)。
容器中最基本的类型有List、Set、Map和Queue。
List有线性的、不定长的、元素可重复的、有下标的,先进先出等特点。并且可以在List中间插入或者移除对象。
Set对于每个值只保存一个对象。如果你试图将相同对象的多个引用添加到Set中,那么它就会阻止这样的重复现象。
Map是允许你将某些对象与其他一些对象关联起来的关联数组。它使用了一种映射的概念。
Queue是典型的先进先出(FIFO)的容器。
1 楼 NX_Coder 2012-04-17 LZ写的蛮专业的。。。LZ哪上学的咩?