码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Java基础】Java容器相关知识小结


    Java容器相关知识

      • 0. 前言
      • 1. Collection接口
        • 1.1. List接口
          • 1.1.1. ArrayList
          • 1.1.2. LinkedList
          • 1.1.3. Vector
          • 1.1.4. Stack
        • 1.2. Set接口
          • 1.2.1. HashSet
          • 1.2.2. LinkedHashSet
          • 1.2.3. TreeSet
        • 1.3. Queue接口
          • 1.3.1. PriorityQueue
          • 1.3.2. LinkedList
      • 2. Map接口
        • 2.1. HashMap
        • 2.2. TreeMap
        • 2.3. LinkedHashMap
      • 3.常见用法——增/删/改/查/排序/容量
      • 后记
      • 参考文章

    0. 前言

    容器,顾名思义,就是java中存储数据的常用结构,在C++中我们接触过数组、链表等等,在java中,容器则进一步规范化,形成了如下的容器接口继承关系图:
    在这里插入图片描述

    java容器主要包括collection接口(集合)和map接口(图)

    1. Collection接口

    1.1. List接口

    1.1.1. ArrayList

    数组实现,查询快,增删慢,线程不安全,效率高;

    1.1.2. LinkedList

    链表实现,查询慢,增删快,线程不安全,效率高;

    1.1.3. Vector

    数组实现,查询快,增删慢,同步访问

    1.1.4. Stack

    vector子类,先进后出,vector不常用,stack却很常用。

    1.2. Set接口

    1.2.1. HashSet

    基于HashMap实现,线程不安全,效率高;
    存储元素无序,不可重复;

    1.2.2. LinkedHashSet

    基于LinkedHashMap实现,线程不安全,效率高;
    存储元素有序,不可重复;

    1.2.3. TreeSet

    基于TreeMap实现,线程不安全,效率高;
    存储元素有序,不可重复;

    1.3. Queue接口

    1.3.1. PriorityQueue

    通过二叉小顶堆实现,可以用一棵完全二叉树表示。

    1.3.2. LinkedList

    链表实现,查询慢,增删快,线程不安全,效率高;

    2. Map接口

    2.1. HashMap

    数组+链表+红黑树实现,线程不安全,效率高;
    重点是扩容和红黑树转换

    2.2. TreeMap

    和HashMap无序排序不同,SortedMap接口在内部会对Key进行排序,注意到SortedMap是接口,它的实现类是TreeMap。

    2.3. LinkedHashMap

    底层数据结构类似hashmap,但是内部还有一个双向链表维护键值对的顺序,每个键值对既位于哈希表中,也位于双向链表中。LinkedHashMap支持两种顺序插入顺序、访问顺序。

    3.常见用法——增/删/改/查/排序/容量

    以上是简单的容器特性介绍,下面是一些常用的容器类的使用方法,废话不多说,上图:
    在这里插入图片描述

    后记

    如果觉得我写得还算不错,不妨点赞关注一波走起~
    想看更多博文,请访问我的各平台主页:博客园 / CSDN / 51CTO / 掘金论坛 / 知乎

    参考文章

    1. Java常用容器基础操作汇总
    2. 菜鸟教程相关文章
  • 相关阅读:
    Java语法小知识+数据结构常见选择题型
    智安网络|探索人机交互的未来:自然语言处理的前沿技术
    成都优优聚专业美团代运营团队!
    PHP M题 - 技巧
    ASP.NET动态网站开发学习实录(一)
    Java JVM垃圾回收确定垃圾的两种方式,GC Root
    OpenMLDB+Byzer,SQL 也能玩转机器学习全流程
    Linux 模块的初始化过程
    C++ OpenCV手动截取图像做透视变换
    基础IO —— Linux
  • 原文地址:https://blog.csdn.net/weixin_44201830/article/details/134299373
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号