• JAVA基础——【笔记】14.集合


    集合的框架体系:

    在这里插入图片描述
    在这里插入图片描述

    List等接口的实现子类有很多,仅列出常用的。

    • 数组的不足(集合需求的出现):

    在这里插入图片描述

    • 集合特点:

    在这里插入图片描述

    一、Collection接口方法

    在这里插入图片描述

    1、Collection常用方法及其用法:

    (Collection为接口,不能直接实例化,需要类实现接口)

    在这里插入图片描述

    2、Collection接口遍历元素方式

    如果是Collection接口,可以用迭代器和增强for循环两种方式遍历,如果是List接口的子类还能用普通for

    ① 使用Iterator(迭代器)
    在这里插入图片描述

    迭代器原理:
    在这里插入图片描述

    示例:

    在这里插入图片描述

    ② 使用 增强for循环

    在这里插入图片描述

    示例:

    在这里插入图片描述

    ③普通for循环

    在这里插入图片描述

    二、List接口和常用方法

    1、List接口介绍:

    在这里插入图片描述

    List集合的元素有序、可重复、有索引(0开始)

    2、List接口常用方法:

    在这里插入图片描述

    3、ArrayList注意事项

    在这里插入图片描述

    4、ArrayList扩容机制

    在这里插入图片描述

    5、Vector注意事项
    • 基本介绍

    在这里插入图片描述

    多线程时更适合用Vector,其是线程安全的

    • ArrayList比较Vector
      在这里插入图片描述
    6、LinkedList
    • 说明

    • LinkedList的底层操作机制

    添加删除操作效率更高,不是通过数组扩容

    在这里插入图片描述

    • LinkedList的增删改查案例

    在这里插入图片描述

    • ArrayList和LinkedList的比较
      在这里插入图片描述

    三、set接口和常用方法

    1、基本介绍

    在这里插入图片描述

    添加和取出的顺序不一样,但取出的顺序是固定的,即每次运行都是固定顺序

    2、常用方法

    在这里插入图片描述

    实例:
    在这里插入图片描述

    3、HashSet

    ①说明

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    ②HashSet扩容机制
    在这里插入图片描述

    底层机制简要说明:
    在这里插入图片描述

    4、LinkedHashSet

    Set接口实现类—LinkedHashSet

    说明:(有序,插入取出顺序一样,但插入表时不规律存储)、不重复)
    在这里插入图片描述

    底层源码解读:

    在这里插入图片描述

    三、Map接口

    1、Map接口特点
    • Map接口常用方法
      在这里插入图片描述

    • key相同,value不同时,新value替代旧value

    • Map语法

      1、添加元素 .put
      map.put(key,value);
      2、通过get()方法获取key对应的value
      map.get("not")
      
      • 1
      • 2
      • 3
      • 4
    2、Map接口常用方法
    • 常用方法

    在这里插入图片描述

    • Map接口六大遍历方式

    在这里插入图片描述

    解析:

    1、(少使用)

    2、通过迭代器获取所有键(key),再通过map.get(key)遍历键来获取值 ⭐️

    3、通过迭代/循环 EntrySet来获取K-V

    4、直接获取所有值(value),再遍历

    每种Map遍历方式中又包含可用增强for和迭代器两种遍历的方法.

    小结:

    在这里插入图片描述

    3、HashTable的基本介绍
    • 基本介绍
      在这里插入图片描述

    • 扩容机制:
      在这里插入图片描述

    HashMap和HaspTable对比

    在这里插入图片描述

    4、Map接口实现类Properties
    • 基本介绍
      在这里插入图片描述

    • 常用基本方法:

    增\删\改\查(获取值)

    在这里插入图片描述

    四、集合选型

    在这里插入图片描述

    • 其中 :

    List中:增删多:双链表增删更快; 改查多:通过数组的索引定位比较快;

    插入和取出顺一致,但存储时是无序存储的;

    TreeSet具备实现了Comparator接口的compare()方法,重写compare()方法可以自定义排序规则,对Integer类型数据存储顺序默认按数字从小到大排序,字母默认按从a-z排序.

    TreeMap类似TreeSet,只是实现了compareable接口的compareTo()方法

    五、Collections工具类

    • 介绍
      在这里插入图片描述

    • 例:

    在这里插入图片描述

  • 相关阅读:
    2001-2022年上市公司利润表数据
    pytorch(小土堆)深度学习
    Doping:使用精心设计的合成数据测试和评估异常检测器的技术
    浅谈WPF之控件模板和数据模板
    LVGL简介(基于v8.1-8.2)
    写代码有这20个好习惯,可以减少90%非业务的bug
    logstash设置端口密码
    KMP算法详解以及Java代码实现
    Java 集合中的排序算法浅析
    C++20中的Feature Test Mocros
  • 原文地址:https://blog.csdn.net/weixin_53920044/article/details/127892793