浅谈Collection集合

俗话说:一个东西,一件事都离不开三句话:“是什么,为什么,怎么办”

集合是什么:

             集合简单的说一个数组集合的高级体现,用来存储数据或对象的容器;

集合为什么存在:

             集合只是体现了对数据操作的灵活度;大大方便了开发者的效率;

集合怎么使用:

             使用分了以下几种方式:        Collection     集合   1.list    2.Set

                    List

          List            底层数据结构   查询 增删 线程   效率
 ArrayList     数组  不安全
Vector   数组 安全
LinkedList       链表   不安全    高

 

 

    

             

        Set

Set 底层数据结构 有序 唯一 排序
HashSet 哈希表 是(依赖hashCode()和equals()) --
LinkedhashSet 链表和哈希表

由链表保证元素有序
由哈希表保证元素唯一

--
TreeSet 红黑树 --

a.自然排序

b.比较器排序

 

 

(4)Collection的功能概述

          List cn=new ArrayList();
     A:添加功能

           add(Object e);//直接自然顺序插入

           add(index, element);//按索引插入
     B:删除功能

             remove(index);//根据索引移除
     C:判断功能

             cn.contains(object e)//判断cn集合中是否存在元素e
     D:获取功能

              cn.get(index)//跟据索引获取值
     E:长度功能

               cn.size()//返回集合长度
     F:交集(了解)

       cn.retainAll(Collection c)//cn对c做交集

       cn对c做交集  返回值是boolean值

   有交集       则返回true  存在交际则cn集合中的值会返回交集值

   无交集        则返回false
    G:把集合转数组

        cn.toArray()
(5)Collection集合的遍历
     A:把集合转数组(一般不用)

     遍历集合 改成 遍历数组
     B:迭代器(集合专用方式) 
           迭代器

   //创建cn集合对象的迭代器

     iterator it=cn.iteraror();

     while(it.hasnext())

     {System.out.println(it.next())}
           1:是集合的获取元素的方式。
           2:是依赖于集合而存在的。
           3:迭代器的原理和源码。
                   a:为什么定义为了一个接口而不是实现类?

                         简单的说:不管是哪一种集合,我们都要获取集合中的数据,并且在获取之前辅助于判断功能,也就是说在获取元素之前先进行判断,那么集合就有两个功能(判断,查询)。这样如果是实现类只能去实现某一个集合,反而接口可以做到,让子类自己去实现接口,这样就达到要求了;

(5)并发修改异常
    A:出现的现象
          迭代器遍历集合,集合修改集合元素
    B:原因
          迭代器是依赖于集合的,而集合的改变迭代器并不知道。
    C:解决方案
          a:迭代器遍历,迭代器修改(ListIterator)
                元素添加在刚才迭代的位置
          b:集合遍历,集合修改(size()和get())
                元素添加在集合的末尾
  (6)常见数据结构
         A:栈 先进后出
         B:队列 先进先出
         C:数组 查询快,增删慢
         D:链表 查询慢,增删快

 

原文地址:https://www.cnblogs.com/fjkgrbk/p/Collection_easy.html