java基础--集合Connection/Map

参考文章:http://blog.sina.com.cn/s/blog_9b7559130100z1f4.html html

一:为何会出现集合框架
        由来:早期是没有集合框架这一说的,由于当时有数组就能够了。可是随着Java的发展与市场的不断需 数组

        求,就出现了集合框架,好比数组时存储基本数据类型的,固然也能够存储自定义类型,可是其长度必 安全

        须是固定的,查询删除修改元素的时候,都必须经过角标。这就很不方便,为何呢?由于你经过角操 框架

        做数据,那么你怎么记着每一个具体元素对应的角标呢?好比一个数组中有{d,b,t,g},等过段时间后, spa

        你怎么知道t在数组中的那个问题呢?
        因此Java在早期就出现了原始的集合Vector,因为早期注重的是安全,因此其为线程安全的。可是随着 线程

        市场需求的不断增多,效率就成了社会的主流,这时Vector就不能知足需求,就须要有新的效率高的集 htm

        合来代替。这就出现了集合框架,根据面向对象的思想,不可能让一个集合具备全部的优势,由于这不 对象

        现实。 因此就出现了多个不一样的集合,这些不一样的集合都有各自的特色,但又有共同的方面,因此为 blog

        了让他们有归宿而且造成体系,就把他们共性的方面给抽取出来,造成他们的父类,让特征不一样的集合 继承

        继承,这样就有了集合框架。
二:集合框架与数组的区别:
      1:最大的区别集合框架存储的是引用数据类型,不能是基本数据类型
      2:集合的长度是可变的,数组的是不可变的
三:集合框架的体系结构

                                     Collection
   
                      List                Vector              Set

           ArrayList       LinkedList                  HashSet      TreeSet
                           LinkedHashSet
 

四:看体系的方法:
     要看一个体系,首先要看的就是他们的最底层,因此咱们先看框架集合的祖宗Collection。。。。。。

   1:Collection有什么特色
       规律一:凡是祖宗通常其必为接口,遗憾的是Collection没有逃脱这个规律,它也是接口。那么接下来

               咱们就要看这个接口(对象)
   其特色
        1:长度可变(说明是数组)
        2:元素能够重复(因此有角标),所以第三点能够不说
        3:元素有角标
   有哪些行为呢?
       一个类(对象)中无非要么是方法(功能),要么是属性,要么是两者都有。遗憾的是Collection只有

      功能(方法),因此接下来看看它有
   什么具体方法?
      一个对象所具备的方法不过如下四类:增删改查
 1:增:
     因此咱们先看Collection的增长的方法,试想若是是本身定义,参数是什么,返回值是什么?
     若是是我定义的,确定须要参数,没有返回值。这是我初次的想法,可是若是添加不成功怎么办?因此之

     前的想法是错的,必须有返回值可是返回值是什么类型的好呢?试想,若是是int型的,添加成功返回1,

     不成功返回0,这能够。可是有另外一种更加好的返回类型,boolean型,成功返回true,不成功返回false,

     这也能够。
     但为何比int型更好呢?
     由于咱们有时候没必要写返回值true与false,好比 return a>b;若是成功,本身就能够返回true可是若是返

     回的是int型,就需以下
        if(a>b) return 1;
        else 0;
     这样写不但代码繁琐并且格式不优美,因此其add方法以下
       boolean add(E e);//添加单个元素到集合中
      boolean add(Collection<? extends T> c)//把一个集合中的元素添加到另一个集合中
  2:删
     删除集合中的元素:
     觉得Collection补充了数组的不足,删除元素经过对象,而不是角标返回值为boolean
     boolean remove(Object o);
     boolean revoveAll(Collection<? extends T> c);//查找并移除集合中相同的元素
     void clear();
  3:查:
     boolean contains(Object o)//元素是否包含在指定集合中
     boolean contionsAll(Collection<? extends T> c);//参数集合是否包含的指定集合中
     boolean isEmpty();//集合是否为空
     boolean retaionAll(Collection<? extends T> c);//查找并保留相同的元素
  4:取
    如何的把集合中的元素所有的取出来,是很是重要的一个方面,可是Collection也为咱们提供好了功能
    其参数是什么呢?由于是取集合自身的元素,因此没有参数。
    可是返回值类型是什么呢?
    由于每一个子类的特色不同,因此他们存储的数据也是不同的,因此致使他们的取出方式更是不同,
    因此返回的应该是怎么去元素的那个对象,即迭代器Iterator iterator()
  5:其它功能
    因为数组胡集合有不少的相识型,因此集合就产生一个将集合转为数据的方法返回值理应为Object型的数

    组,不想要参数,由于涉及到的只是本身在转变,如何转只有本身知道,因此无参 Object[] toArray();
    可是老是返回Object型的数组老是不舒服的,由于有时候咱们知道具体的返回值类型,因此方法以下
    T[] toArray(T[] a);
   注意:
    在参数中能够指定数组的长度也能够不指定,若是指定的数组大小小于集合中的元素个数,则会从新建立一

    个默认的能装下集合元素的数组     若是指定的数组大了,则多余的用null填充,     因此最好的是指定一个与集合元素个数相同的数

相关文章
相关标签/搜索