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比较器

      

  • 相关阅读:
    高效 告别996,开启java高效编程之门 问题
    高效 告别996,开启java高效编程之门 3-3实战:利用Lambda+Stream处理业务逻辑
    高效 告别996,开启java高效编程之门 3-2传统方式处理业务逻辑
    高效 告别996,开启java高效编程之门 3-1流式编程开场与案例场景概述
    无限树
    拖拽示例
    日期格式化字符串 字符串转化成日期
    loading
    It运维项目整理
    免费的二维码发布平台 http://zhifubao.masao.top:8282/assets/index.html
  • 原文地址:https://www.cnblogs.com/hudada007/p/7011226.html
Copyright © 2011-2022 走看看