zoukankan      html  css  js  c++  java
  • 浅谈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:链表 查询慢,增删快

     

  • 相关阅读:
    Visifire正式版(v1.1)发布
    [转]PSP机能强大!已能模拟运行WINDOWS系统?
    在Silverlight+WCF中应用以角色为基础的安全模式(一)基础篇之角色为基础的安全模式简介 Virus
    C#的加密解密算法,包括Silverlight的MD5算法 Virus
    MMORPG programming in Silverlight Tutorial (10)Implement the sprite’s 2D animation (Part IV)
    Game Script: Rescue Bill Gates
    MMORPG programming in Silverlight Tutorial (9)KeyFrame Animation
    MMORPG programming in Silverlight Tutorial (5)Implement the sprite’s 2D animation (Part II)
    MMORPG programming in Silverlight Tutorial (7)Perfect animation
    MMORPG programming in Silverlight Tutorial (3)Animate the object (Part III)
  • 原文地址:https://www.cnblogs.com/fjkgrbk/p/Collection_easy.html
Copyright © 2011-2022 走看看