java从零开始系列(九)集合类概念

luoyjx · 2014-11-03 22:03 · 885次阅读

    概念:

    集合类 Collection API

  •     集合(或容器)表示一个对象组的单个对象,其它对象被认为是它的元素。
  •     集合与数组的不同在于,它是大小可变的序列,而且元素类型可以不受限定,只要是引用类型。
  •     集合类使用初始容量和加载因子调整自己的大小。
  •      集合类全部支持泛型,是一种数据安全的用法。

    概念总是又繁琐又难记,理解为王。

    为什么说集合是容器,其实他也没什么神秘的,就是有一些前人总结出来的类,这些类里面存了带有一些同样特征的数据(类)。

    打个比方,Person类,经常需要把很多个Person类的对象放在一起,以便之后操作,比如我要循环读取每个人的姓名、年龄等,平常,我们都是放在数组中,这样循环起来比较方便,因为它是连续的。

    但是呢,数组通常来说是可以放一类数据的集合的,确实,用数组我们可以存储一些类或者数据的集合,但是我们用这些数据经常会做一些操作,也就是使用某些方法,这样数组的局限性就体现出来了,他能提供的方法很有限,而且自己也不方便定义,而集合的出现比较好的解决了这种局面,打个比方,我们要向数组里添加、删除、从某处添加、某处删除、删除某些元素,这些如果每次都用数组来做的话相当麻烦,而这些被封装成类之后,复用性大大增加,使用起来就不需要关心底层是怎么实现的。

    在上面我举的例子基本就是拿比较常用的ArrayList来说的,从名字可以看的出,他是和数组比较类似的列表,那么他的特性就是连续的,是的,他内部其实就是用的Object数组实现的,当然也不是这么一两句就说完了的。

    Collections API的体系结构
    Java在Java.util包中提供了一组API。这组API中的大部分类都实现了Collection接口,因此,被称作Collections API。根据它们处理的不同种类的数据结构,
    Collections API可分为三类:

  • Collection:一组没有顺序的对象,允许重复相同的元素.
  • Set:一组没有顺序的对象,不允许重复相同的元素.
  • List:一组有顺序的对象,允许重复相同的元素.

    List和Set接口是Collection的子接口。
    Map接口表示名称和值的对应关系组成的集合,它不是Collection的子接口。
    Collections(注意带s)是Collection集合类的工具类,支持常用算法:排序,二进制搜索,求最小值和最大值等等。

    下面是整个集合的继承关系:     

    

    再来一张示意图吧,比较形象的展示了三种集合的特点:

    

    Set:数据集合

    List:线性连续集合

    Map:键值对

    

收藏

暂无评论

登录后可以进行评论。没有账号?马上注册