集合

来源:互联网 发布:linux while跳出循环 编辑:程序博客网 时间:2024/05/17 22:33

集合

 

集合的由来:

            我们学习的是面向对象的语言,而面向对象的语言对事物的表述都是通过对象体现的.那么为了方便的操作多个多个对象,我们就需要把这多个对象存储起来,那么既然是存储多个对象,我们就需要使用一个容器,那么在我么以前学习的知识里面,那些都是容器呢?数组 , StringBuffer . 我们都知道StringBuffer得到的只能是字符串,StringBuffer不能满足我们的需求,那么只有数组(对象数组).而我们数组不能满足我们变化的需求,于是java就给我提供了另一个容器,这就是集合.

           

 数组和集合的区别:

            a: 长度的区别:

                   数组的长度是固定的

                   集合的长度是可变的

             b: 存储数据的类型不同

                    数组可以存储基本数据类型,也可以存储引用数据类型

                    集合只能存储引用数据类型

             c: 内容的不同

                    数组只能存储同一种类型的数据

                    集合可以存储不同种类型的数组

      我们都知道集合是用来存储多个对象的,即使是储存多个对象,有时候我们的需求不一样,比如: 我们想让这个元素排个序,我想让这些元素不能重复.那么针对不同的需求java就给我们提供了不同的集合类 , 这个集合的数据结构不同,而数据结构不同不重要,重要的是你们都可以帮我存储数据,并且我们还可以使用这些数据.那么由此可见,这些集合类应该存在共性的内容,既然存在共性的内容,我们就因该向上抽取,这些就形成了集合的继承体系结构

     

      数据结构:存储数据的方式

 

      Collection的概述:

                    Collection层次结构中的根接口。Collection 表示一组对象,这些对象也称为 collection的元素。

                    一些 collection 允许有重复的元素,而另一些则不允许。一些 collection是有序的,而另一些则是无序的。

                    JDK不提供此接口的任何直接实现:它提供更具体的子接口(如 Set List)实现。

 

      Collection的功能概述:

             a: 添加的功能

                    boolean add(Object obj):             添加元素

                    boolean addAll(Collection c):      添加一个集合的元素

             b: 删除的功能

                    void clear():                               移除所有的元素

                    boolean remove(Object o):          移除指定的元素

                    boolean removeAll(Collection c):移除一个集合的元素,移除一个以上算是移除还是移除所有的才算移除?

             c: 获取的功能

                    Iterator iterator():                获取遍历集合的迭代器<重点   >    

             d: 长度的功能

                    int size():                                   获取集合元素的个数

             e: 判断的功能

                    boolean contains(Object o):                判断集合中是否包含指定的元素

                    boolean containsAll(Collection c):判断集合中的否包含一个集合的元素. 包含一个以上算是包含,还是包含所有算是包含?

                    boolean isEmpty():              判读集合是否为空

             f: 获取交集的功能

                    boolean retainAll(Collection c):   获取交集. 获取到的交集的元素去哪里了,返回的boolean类型的值表示的是神马意思?

             g: 集合转换成数组的功能:

                    Object[] toArray():                     把集合转换成数组

 

 

Iterator iterator():  获取遍历集合的迭代器           

             Object next():获取下一个元素,并将指针向后移动一位

             boolean hasNext():判断集合中是否还存在元素

 

 

 

 

 

List: 元素可以重复,并且是有序(存储和取出的顺序),每一个元素都有一个对应的索引

       void add(int index,Object obj):           在指定索引处添加元素

                     Object remove(int index):                  移除指定索引处的元素

                     Object get(int index):                         获取指定索引处的元素

                     Object set(int index,Object obj):  更改指定索引处的元素

 

       List 的三个儿子

              ArrayList:底层实现是数组,数组的特点,查询块 ,增删慢

                             线程不同步,不安全 ,效率高

Vector:

                           底层实现是数组,数组的特点,查询块 ,增删慢

                           线程同步 , 安全 ,效率低

LinkedList:

                           底层的数据结构是链表,链表的特点是:查询慢, 增删块

                           线程不同步,不安全 ,效率高

 

0 0