zoukankan      html  css  js  c++  java
  • 集合框架

    java中的集合(广义)即collection(狭义)和map

    Collection

    Iterable: 只有Iterator和foreach方法

    collection:集合(又称为容器)他与array的不同在于array容量固定,而它可保存一个可以动态增长的数据,注意它是一个接口,不能实例化,继承自Iterable

    set: 无序号,故不能有重复数据

    list: 有序,可存在重复数据,每个元素都有索引

    queue: 保持先入先出的顺序

    备注: 他们都是接口

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

    接下来介绍一下常用的实现类:

    List

    ArrayList

    传说中的动态数组,顾名思义,是一种基于数组的数据结构

    特点:初始大小为4,当数据存满时扩容为当前数组容量的两倍,即创建一个当前数组两倍大小的数组,然后把数组元素一个一个地存入

    LinkedList

    基于链表的数据结构,而且是双向链表

    对比:

    ArrayList随机访问效率高,linkedList得移动指针,效率相对低

    linkedList增删效率高,ArrayList得移动数据

    备注: 链表是一种物理存储单元上非连续、非顺序的存储结构,逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据的数据域,另一个是存储下一个结点地址的指针域。 

    Vector类似于ArrayList,区别在于他是线程安全的,即任意时刻都只有一个线程访问,相对的,访问他的速度比ArrayList慢

    Set

    hashSet

    基于hash表,元素可为null

    不可重复,无序

    linkedHashSet

    基于链表和哈希表

    有序

    treeSet

    基于红黑树算法

    有序

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

    Map

    主要实现类为:

    HashMap

    HashTable

     

    linkedHashMap

     

    TreeMap

    Map与set的关系:

    Set集合就是由Map集合的Key组成

  • 相关阅读:
    从一个网页上摘取想要的元素
    Oracle数据库迁移
    java 内部类
    关于robot framework 环境搭建的几点注意
    robotframework 页面已经locate到元素 但是操作提示element is no longer valid!
    转 PyQt学习资料
    Java 大数值
    【转】Excel 使用技巧
    Java调用WebService
    String StringBuffer StringBuider
  • 原文地址:https://www.cnblogs.com/yanze/p/9669187.html
Copyright © 2011-2022 走看看