Java # Java容器

news/2025/3/6 2:04:49/

一、概览

Collection


  • Set      
    • TreeSet:
      • 无序,不可重复,自动排序;
      • 存放在TreeSet中相当于存放到TreeMap的key部分
    • HashSet:
      • 无序,不可重复,支持快速查找;
      • 存放在HashSet中相当于存放到HashMap中的key部分
    • LinkedHashSet:基于双向链表实现,具有HashSet的查找效率
  • List
    • ArrayList:
      • 基于动态数组实现,支持随机访问
      • 增删元素通过移动元素实现,效率较低
    • Vector:
      • 和ArrayList类似
      • 线程安全,但效率较低,现在大多不用
    • LinkedList:
      • 基于双向链表实现,增删元素效率高,但查询效率低(每次都要从头结点开始)
      • LinkedList还可以用作栈、队列和双向队列
  • Queue:
    • LinkedList:可以用它来实现双向队列
    • PriorityQueue:基于堆结构实现,可以用它来实现优先队列

Map

  • TreeMap:基于红黑树实现,会根据key自动排序
  • HashMap:基于哈希表实现
  • HashTable:
    • 和HashMap类似
    • 线程安全。但他是遗留类,现在大多不用;而是使用ConcurrentHashMap来支持线程安全
  • LinkedHashMap:
    • 使用双向链表来维护元素的顺序
    • 顺序为插入顺序或者最近最少使用(LRU)顺序

二、容器中的设计模式

  • 迭代器模式:Collection继承了Iterable接口,其中的iterator()方法能够产生一个Iterator对象
  • 适配器模式:java.util.Arrays#asList()可以把数组类型转换为List类型

http://www.ppmy.cn/news/983460.html

相关文章

钉钉返回:访问ip不在白名单之中,请参考FAQ

新版钉钉 在开发管理-服务器出口IP-配置返回错误信息返回给你的requestIp

GNN的一篇入门 :A Gentle Introduction to Graph Neural Networks

原文链接 A Gentle Introduction to Graph Neural Networks (distill.pub)https://distill.pub/2021/gnn-intro/ 内容简介:本文是“A Gentle Introduction to Graph Neural Networks”的阅读笔记,因为第一次接触GNN,很多深奥的概念不懂&…

python多进程编程(模式与锁)

multiprocessing的三种模式 fork,【拷贝几乎所有资源】【支持文件对象/线程锁等传参】【unix】【任意位置开始】【快】spawn,【run参数传参必备资源】【不支持文件对象/线程锁等传参】【unix、win】【main代码块开始】【慢】forkserver,【ru…

【C++进阶之路】适配器、反向迭代器、仿函数

文章目录 前言一、适配器①模拟实现栈②模拟实现对列 二、反向迭代器三、仿函数总结 前言 我们先来笼统的介绍一下今天的三个内容。 适配器——简单的理解就是复用,用已经实现的轮子,来继续实现某种功能。 反向迭代器——原理很简单,就是对…

PHP在线相册--【强撸项目】

强撸项目系列总目录在000集 PHP要怎么学–【思维导图知识范围】 文章目录 本系列校训本项目使用技术 上效果图phpStudy 设置导数据库项目目录如图:代码部分:主页 配套资源作业: 本系列校训 用免费公开视频,卷飞培训班哈人&…

VUE之axios使用,跨域问题,拦截器添加Token

参考资料: 参考视频 视频资料及个人demo Axios中文文档 VUE之基本部署及VScode常用插件 VUE之基本组成和使用 VUE之Bootstrap和Element-UI的使用 准备工作: 关于SpringBoot和SpringCloud的搭建,以及mybatis-plus的整合见本人之前的CSDN博客,下面编写get请求和post请求…

在vue项目中使用postcss-px2rem插件把px转变为rem,并配合给html根元素设置fontsize,来实现页面的自适应效果

在vue项目中使用postcss-px2rem插件把px转变为rem,并配合给html根元素设置fontsize,来实现页面的自适应效果 安装postcss-px2rem插件,目的:把px转变为remvue.config.js中配置remUnit通过js改变html的fontsize值postcss-px2rem插件…

在Android中使用新版proguard混淆器的方式

文章目录 一、Proguard混淆器二、新版混淆器使用方式(插件版)三、R8与proguard四、参考链接 一、Proguard混淆器 Proguard是Android开发时经常会用到的一个混淆工具,在Android SDK中已经集成了一个免费的Proguard版本,位于/tools/proguard目录中。对于A…