zoukankan      html  css  js  c++  java
  • 集合——Collection

    集合与数组的区别:

      数组一旦声明,其数据类型和长度不可变,集合的数据类型可以混和,长度不限定。

    集合的结构图:

    Collection               -    Map

    ---------------------------------------------------------------------------

      List                -       HashMap

        ArrayList            -        LinkedHashMap

          LinkedList            -        TreeMap

        LinkedList            -

    ----------------------------------------------------------------------------

      Set                -

        HashSet            -

          LinkedHashSet       -

        TreeSet            -

    ----------------------------------------------------------------------------

    List和Set分别实现了Collection接口,而Map和Collection“平级”。


    List:元素存储特点不唯一、无序。

    遍历方式:

    1、for循环

    2、for-each

    3、迭代器

      ArrayList:

        相当于可变长度的数组,在内存中的存空间是连续的

        优点:查询、遍历效率高

        缺点:添加、删除效率低

      Vector:

        类似于ArrayL。

        区别:

          ArrayList是非线程安全的,效率较高

          Vector是线程安全的,效率较低

      LinkedList:

        采用链表结构进行存储

        优点:添加、删除效率高

        缺点:查询、遍历效率低

    Set:元素存储特点唯一、无序

    1、for-each

    2、迭代器

      HashSet:

        采用哈希表方式进行存储

      优点:增加、删除、查询效率高

      在添加元素时调用hashCode()方法,计算哈希值,如果哈希值相等,则继续调用equals()方法进行比较,如果返回值为true,则两个元素相同,反之不同。即     equals()为true,则哈希值一定相等。反之则不成立。

      缺点:无序

        LinkedHashSet:

          采用链表结构+哈希表存储方式

          有序(添加顺序)

      TreeSet:

        采用二叉树(红黑树)方式进行存储

        有序(大孝顺序)

        添加元素需要实现Comparable接口或者创建Comparetor比较器

      

  • 相关阅读:
    css3(持续更新...)
    em,rem,px之间的转换
    document.compatMode属性
    CSS hack(CSS浏览器兼容)
    JavaScript正则表达式
    Django数据库sqlite转mysql
    Markdown 使用指南
    centos7下docker 部署javaweb
    CMD命令大全
    {dockerUI}在服务器上直接安装shipyard/shipyard
  • 原文地址:https://www.cnblogs.com/hudada007/p/7011226.html
Copyright © 2011-2022 走看看