java集合概述

来源:互联网 发布:淘宝关键词top100 编辑:程序博客网 时间:2024/06/06 09:25

java集合概述

前言:

  • Java提供了集合类,用于负责保存、盛装其他数据,因此集合类也被称为容器类,集合类中只能保存对象(实际上是对象的引用)。
  • Java集合大致可以分为Set、List、Queue和Map四种体系。其中Set代表无序,不可重复的集合;List代表有序、重复的集合;Map代表有映射关系的集合;Java5又增加了Queue体系集合,代表了一种队列集合实现。
  • Java集合主要由俩个集合派生而出:Collection和Map接口
         这里写图片描述
         这里写图片描述
         
  • 看下面这幅图,我们可以看出:Set集合类似于一个罐子,把一个对象添加到Set集合中时,Set集合无法记住添加这个元素的顺序,所以Set元素无法重复(否则系统无法识别此元素);List集合像一个数组,它可以记住每次添加元素的顺序、且List长度可以变化。Map集合也像一个罐子,只是它里面的每项数据都由俩个值组成。
    这里写图片描述

(一)Collection接口

  • Collection接口是List、Set和Queue接口的父接口,定义了如下方法:
  • boolean add(Object o) :向集合中添加一个元素。
  • boolean addAll(Collection c):把集合c里的所有元素添加到指定集合里。
  • void clear() :清楚集合中所有元素,将集合长度变为0。
  • boolean contains(Object o):返回集合里是否包含指定元素。
  • boolean containAll(Collection c):返回集合里是否包含集合c的全部元素。
  • boolean isEmpty():返回集合是否为空。
  • boolean remove(Object o): 删除集合中指定元素o,若集合中包含了一个或多个元素时,该方法只删除第一个符合条件的元素。
  • boolean removeAll(Collection c): 从集合中删除集合c里所包含的所有元素。
  • int size():返回集合中的个数。

(二)Set接口

   Set是一种不包括重复元素的Collection。它维持它自己的内部排序,所以随机访问没有任何意义。与List一样,它同样运行null的存在但是仅有一个。由于Set接口的特殊性,所有传入Set集合中的元素都必须不同,同时要注意任何可变对象,如果在对集合中元素进行操作时,导致e1.equals(e2)==true,则必定会产生某些问题。实现了Set接口的集合有:EnumSet、HashSet、TreeSet。

  • EnumSet

    是枚举的专用Set。所有的元素都是枚举类型。

  • HashSet

    HashSet堪称查询速度最快的集合,因为其内部是以HashCode来实现的。它内部元素的顺序是由哈希码来决定的,所以它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变,也就是说HashCode值不一定永远不变。

  • TreeSet

    基于TreeMap,生成一个总是处于排序状态的set,内部以TreeMap来实现。它是使用元素的自然顺序对元素进行排序,或者根据创建Set 时提供的 Comparator 进行排序,具体取决于使用的构造方法。

(三)List接口

  • List接口为Collection直接接口。List所代表的是有序的,可以重复的Collection,集合中每一个元素都有其对应的顺序索引。List集合允许使用重复元素,可以通过索引来访问指定位置的集合元素。
  • 实现List接口的集合主要有:ArrayList,LinkedList,Vector,Stack。

(四)Map接口

  • Map与List、Set接口不同,它是由一系列键值对组成的集合,提供了key到Value的映射。同时它也没有继承Collection。在Map中它保证了key与value之间的一一对应关系。
  • 实现map的有:HashMap、TreeMap、HashTable、Properties、EnumMap。
0 0
原创粉丝点击