您的位置:首页 > 职场人生

黑马程序员—javaCollection集合框架

2015-07-28 22:35 204 查看
                            -------
<a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

一、java集合框架

       集合体系的由来:集合是一个存储多个元素的容器,但是,由于数据结构的不同,java提供了多种集合类,而这多种集合类有共性的功能,所以通过不断的向上抽取,最终形成了集合体系框架。java中分为两种单列集合和双列集合体系,Collection是单列集合体系的顶层接口,里面包含了所有单列集合的共性功能。双列集合的顶层是Map接口。
        java是一门面向对象语言,所以不管是在开发还是学习中,都需要针对多个对象进行操作,操作就必须有存储,而对于多个元素进行存储,数组有与长度是固定的,不能满足元素变化得需求,所以java为我们提供了一种新的容器集合!
1,集合的特点:(1)、长度可以发生改变
               (2)、只能存储对象
               (3)、可以存储多种类型对象(一般存储的还是同一种)
2,集合和数组的区别:(1)、长度问题
                        数组固定
集合可变
  (2)、存储元素问题
数组可以是基本类型,也可以是引用类型。
集合只能是引用类型。
  (3)、是否同一类型
数组元素类型一致。
集合元素类型可以不一致。
二、Collection单列集合框架:
Collection
|--List
特点:有序的(存和取得顺序一致),带索引的,通过这个索引可以精确的操作集合中的元素,元素可以重  
复,List接口的特有方法:全部都是围绕索引进行的。

   |--ArrayList  底层是数组结构,长度是可变的(创建数组+复制数组),非线程安全的,效率高;查询速度快,增删速度不给力。

   |--Vector  可以增长的数组结构,线程安全的,效率低,增删快,查询慢,对比ArrayList查询效率低。
  |--LinkedList 底层是链表结构,非线程安全的,效率高,增删速度快,查询速度慢,可用于实现堆栈和队列结构。
|--Set 不包含重复元素,无序的。
|--HashSet 哈希表结构,查询速度快,但只保证元素唯一。非线程安全的,保证元素唯一性依赖于HashCode()   方法和equals()方法。
|--TreeSet  二叉树结构,可以对集合中的元素进行排序,有两种方式:
(1):元素自身具备排序(自然排序),其实就是实现了Comparable接口重写了compareTo()方法,如果元素自身不具备自然排序,或者不是我们所需求的,这时候就用第二种方式了
(2):比较器:其实就是在创建TreeSet集合,在构造函数中指定集体的比较方式,需要重新定义一个类实现comparator接口,重写了compare()方法。
三、Collection集合的基本方法
A:添加功能

向集合中添加一个元素:

  boolean add(Object obj)

向集合中添加一个集合的元素:

  boolean addAll(Collection c) 

 B:删除功能

删除集合中的所有元素:

  void clear()

从集合中删除指定的元素:
boolean remove(Object obj)

从集合中删除一个指定的集合元素。 

  boolean removeAll(Collection c)

  C:判断功能

判断集合是否为空集合:

  boolean isEmpty()

判断集合中是否存在指定的元素:

  boolean contains(Object obj)

判断集合中是否存在指定的一个集合中的元素:

  boolean containsAll(Collection c) 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: