zoukankan      html  css  js  c++  java
  • 集合

    集合

    • collection和Iterator接口
    • 作用,批量存储数据
    • 特点,存储数量不等的多个对象,抽象为可变长度的object数组
    collection
    • 保存单个的对象
    • 特点
      • 无序不按照元素添加顺序
      • 可重复
    • 方法
      • boolean add(Object o);//添加指定对象,基本类自动装箱
      • void clear()
      • boolean contains(Object o)
      • boolean remove()
      • int size()
    • 实现子类
      • Set接口 : 保存单个对象,无序,不可重复
        • HashSet具体类
          • 使用哈希算法类实现的set集合
          • equals() 和 hashcode一致,为重复
          • 数组实现,哈希算法来计算下标偏移量。
            • 使用哈希算法来实习散列表。
            • 对内存要求高,插入,删除,检索速度快。
        • SortedSet接口,有序,二叉树实现,存放对象必须可比
          • TreeSet接口,用树结构来实现有序
            • 内部实现红黑树,并在每次插入和删除的时候进行维护,而带来检索速度的飞速提升。
            • 实现了自然排序,所以添加的元素之间要可以比较大小
            • 去重规则为comparTo结果为0
            • 二查搜素数,红黑树
            • 可以添加比较器来区别元素
      • List接口:保存单个,有序存放,可以重复
        • ArrayList具体类,用数组实现的List集合
          • void add(int index,Object obj); //向集合中指定下标插入一个新元素
          • Object get(int indexx) //从集合中获取指定下标的元素
          • Object set(int index, Object obj) //把集合中指定下标中的元素替换为新元素,返回老元素
          • Object remove(int index) //删除指定元素
          • 数组的局限性,内存要求连续
        • LinkedList 基于链表实现的集合
          • 链表的局限性,不可以随机访问
        • vevtor 可变数组,速度低。
  • 相关阅读:
    一个有趣的js现象
    根相对路径的简单例子
    几道简单有趣的js题(一)
    js流程控制题——如何实现一个LazyMan
    HTML5 十大新特性(十)——Web Socket
    HTML5 十大新特性(九)——Web Storage
    HTML5 十大新特性(八)——Web Worker
    HTML5 十大新特性(七)——拖放API
    HTML5 十大新特性(六)——地理定位
    HTML5 十大新特性(五)——SVG绘图
  • 原文地址:https://www.cnblogs.com/refengqingfu/p/9978945.html
Copyright © 2011-2022 走看看