集合前奏

集合的概念

集合是数学中的术语,集合的一些原理和算法也来自于数学中的理论。在java中,集合类是用来存放对象的。对于集合的使用是通过实例化集合类得到集合对象。而集合对象则代表以某种方式组合到一起的一组对象,对于这组对象的使用是通过引用集合对象来进行的。

篮球队团体就像是一个集合,篮球队团体的队员都是一个个的对象。

篮球队团体 实例变量 = new 篮球队团体();

实例变量就可以对队员进行增删改查了。

数组也可以满足上面的要求,但是为什么还会出现数组呢?

答案:使用数组之前,我们就要实例化一个数组出来,并且指定长度可以容纳多少数据。但是这样有一个缺点,就是对于一个篮球队的队员可能随时都需要变动,可能增加,可能减少,等等。如果增加了,就会出现数组下标越界,如果减少了,就会出现空指针异常。因此集合的出现就有道理了。

总结数组和集合的区别:

(1).数组的长度是固定的,在定义数组的时候,就要确定数组长度大小。而集合类在定义的时候不需要确认集合所能容纳对象的数量,也就是说集合的 大小是动态调整的。在实际应用中我们不能确认需要存放元素数量的时候,采用集合是比较好的。容量可变是集合相对于数组的最大区别之一。
(2)数组既可以容纳基本数据类型,也可以容纳对象。而集合只能容纳对象,不容纳基本数据类型。另外,需要强调一点的是,无论是数组还是容器,当其容纳对象的时候,存放的都是对象的引用。而数组在容纳基本数据类型的时候,持有的则是数值。

 

集合框架主要是由一些接口、一些抽象类及相应的实现类组合而成。
所谓框架就是一个类库的集合。集合框架就是一个用来表示和操作集合的统一的架构,包含了实现集合的接口和类。

这些都是继承关系,其他的都可以说是实现关系了。例如:LinkList、ArrayList实现了List接口。

Collection:

  集合层次的根接口,jdk没有提供这个接口直接的实现。Collection接口没有直接的实现类,它提供更具体的子接口(如 Set 和 List)实现
Set:

  不能包含重复的元素。Set是从Collection 继承而来,但是Set接口没有提供新的抽象方法,在Set接口当中,它的方法和Collection中的方法是一样的,但是他们表示的含义不是一样的。sortedSet是一个按照升序排列元素的Set。
List:

  是一个有序(不是升序)的集合,可以包含重复的元素。提供了按索引访问的方式。
Map:

  包含了key-value对。Map不能包含重复的key,但是值是可以重复的。SortedMap是一个按照升序排列的key的Map。
在Collection接口中,它提供了add()方法,将元素添加到集合当中,但是没有提供相应的get()方法,也就是没有提供相应的获取元素的方法,所以set接口中也就没有获取元素的方法,但是可以通过后面的Iterator来获取元素。但是在List当中,它不但有add()方法,还有相应的get(int index)方法,即获得元素的方法。是按照索引获取的。

posted @ 2010-12-22 21:06  meng72ndsc  阅读(228)  评论(0编辑  收藏  举报