java集合的概述

来源:互联网 发布:上市公司捐赠数据 编辑:程序博客网 时间:2024/04/29 13:09

集合就是一个容器,我们可以把多个对象放入的容器中。就像水杯(假设容量可以不断扩大)一样,你可以往水杯中不断地添加水,既然是水杯,你就不能往里添加沙子,也就是说集合中添加的对象必须是同一个类型的(引用类型,而不能是基本类型)。

看到集合的介绍会让我们的想起数组,那么集合和数组有什么区别呢?

首先,数组的大小是固定的,而集合理论上大小是不限的。

其次,数组既可以存储基本数据类型的数据,也可以存储引用类型的数据,而集合只能存储引用类型的数据

 

下面来一张集合各个类的关系图(此图来自百度搜索):

上面的图是集合类家族的主要成员们。

该图有一个小错误,里面的Hashtable写成了HashTable。它是java1.0版本的并没有按照java的命名规范来进行命名。

collection是所有集合的父类接口,

具有增{add(),addAll(),},删{remove(),removeAll(),clear()},查{contains(),containsAll(),isEmpty(),size()},取交集retainAll(),遍历iterator(),哈希码hasCode(),比较equals(),

1、List:元素是有序的,可以重复的。因为该集合体系有索引。
    (1)ArrayList:底层是数组结构。java1.2版本,线程不同步。查找很快,增删稍慢慢
    (2)LinkedList:底层是链式数据结构。查找很慢,增删很快
    (3)Vector:底层同ArrayList,java1.0版本,线程是同步的。被ArrayList替代了。增删改查都很慢。
2、Set:元素是无序的,不可以重复的。

    (1)HashSet:由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。

    (2)TreeSet:底层的数据结构是二叉树。

3、Map:将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射一个值。

     (1)HashMap:基于哈希表的 Map 接口的实现。

     (2)TreeMap:基于红黑树(Red-Black tree)的 NavigableMap 实现。

 

 

 

 

 

1 0
原创粉丝点击