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

    什么是集合:是一种工具类,就像是容器,存储任意数量的具有共同属性的对象。

    集合框架图

    说明:所有集合类都位于java.util包下。Java的集合类主要由两个接口派生而出:CollectionMap,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子接口或实现类。
    Collection接口

    1. 是List、Set和Queue接口的父接口;
    2. 定义了可用于操作List、Set和Queue的方法——增删改查;
    • List接口及其实现类——ArrayList
      • List(序列),元素有序,并且可重复;
      • List可以精确控制元素的插入位置,或删除指定位置的元素;
      • ArrayList——数组序列,是List的一个重要实现类;
      • ArrayList底层是由数组实现的

        ArrayList

     ArrayList是一个动态数组,也是我们最常用的集合。它允许任何符合规则的元素插入甚至包括null。每一个ArrayList都有一个初始容量(10),该容量代表了数组的大小。随着容器中的元素不断增加,容器的大小也会随着增加。在每次向容器中增加元素的同时都会进行容量检查,当快溢出时,就会进行扩容操作。所以如果我们明确所插入元素的多少,最好指定一个初始容量值,避免过多的进行扩容操作而浪费时间、效率。

    LinkedList

      1. 同样实现List接口的LinkedList与ArrayList不同,ArrayList是一个动态数组,而LinkedList是一个双向链表。所以它除了有ArrayList的基本操作方法外还额外提供了get,remove,insert方法在LinkedList的首部或尾部。
      2. 由于实现的方式不同,LinkedList不能随机访问,它所有的操作都是要按照双重链表的需要执行。在列表中索引的操作将从开头或结尾遍历列表(从靠近指定索引的一端)。这样做的好处就是可以通过较低的代价在List中进行插入和删除操作。
    • Set接口及其实现类——HashSet
      • Set(集),元素无序,并且不可以重复;
      • HashSet——哈希集,是Set的一个重要实现类;
    • Map接口
      • key值不能重复,value值可以重复;
      • key对value是多(一)对一的关系;
      • Map接口提供了返回key值集合、value值集合、Entry值集合,的方法;
      • HashMap类
        • HashMap是Map的一个重要实现类,也是最常用的,基于哈希表实现;
        • HashMap中的Entry对象是无序排列的;
        • Key值和value值都可以为null,但是一个HashMap只能有一个Key值为null的映射(Key值不可重复);
    • 迭代器Iterator

    Iterator是一个接口,它是集合的迭代器。集合可以通过Iterator去遍历集合中的元素。Iterator提供的API接口如下:

    1. boolean hasNext():判断集合里是否存在下一个元素。如果有,hasNext()方法返回 true。
    2. Object next():返回集合里下一个元素。
    3. void remove():删除集合里上一次next方法返回的元素。
  • 相关阅读:
    AcWing 157. 树形地铁系统 (hash判断树同构)打卡
    AcWing 156. 矩阵 (哈希二维转一维查询)打卡
    AcWing 144. 最长异或值路径 01字典树打卡
    AcWing 143. 最大异或对 01字典树打卡
    AcWing 142. 前缀统计 字典树打卡
    AcWing 139. 回文子串的最大长度 hash打卡
    AcWing 138. 兔子与兔子 hash打卡
    常用C库函数功能及用法
    编程实现C库函数
    C语言面试题5
  • 原文地址:https://www.cnblogs.com/big-data-sky/p/10996105.html
Copyright © 2011-2022 走看看