当前位置: 首页 > article >正文

【Java集合面试题001】Java中有哪些集合类?请简单介绍

回答重点

Java的集合主要分为两大类

单列集合的顶级父接口Collection

键值对集合的顶级父接口Map


Collection接口下又分为List、Set、Queue接口

List接口:

  • ArrayList:基于动态数组,查询快、增删慢
  • LinkedList:基于双向链表,查询慢、增删快
  • Vetcor:线程安全动态数组,类似于ArrayList,性能开销大,JDK1.2就弃用了

Set接口:

  • HashSet:基于HashMap,也就是哈希码,通过元素的hashCode计算的存入位置,所以索引没有意义,就无索引,而且也无序,HashSet的值存在了HashMap的键的位置,而且发生哈希冲突后equals比较值,如果两个元素完全一致,就扔掉,所以也不重复
  • LinkedHashSet:基于哈希表和双向链表,与HashSet的区别就是存取有顺序
  • TreeSet:基于红黑树,元素有序,不允许重复

Queue接口:

  • PriorityQueue:基于优先级堆,元素按照自然顺序或指定比较器排序
  • LinkedList:可以作为队列使用,制服FIFO(先进先出)操作

Map接口

存储的是键值对,也就是给对象(value)设置了一个key,这样通过key可以找到那个value

  • HashMap:基于哈希表,键值对无序,不允许键重复,而且无索引
  • LinkedHashMap:基于双向链表和哈希表,维护存取顺序,不允许键重复
  • TreeMap:基于红黑树,键值对有序,不允许键重复
  • Hashtable:线程安全的哈希表,不允许键或值为null
  • ConcurrentHashMap:线程安全的哈希表,并适合高并发环境,不允许键或值为null


http://www.kler.cn/a/452829.html

相关文章:

  • 普通人怎么入门学习并使用AI?
  • Go语言及MongoDB数据库安装配置详解!
  • kubernetes Gateway API-部署和基础配置
  • 【系统架构设计师】真题论文: 论软件测试中缺陷管理及其应用(包括解题思路和素材)
  • 大数据-256 离线数仓 - Atlas 数据仓库元数据管理 正式安装 启动服务访问 Hive血缘关系导入
  • 基于微信小程序的校园访客登记系统
  • axios 常见的content-type、responseType有哪些?
  • 3090. 每个字符最多出现两次的最长子字符串
  • sentinel限流+其他
  • 基于ISO 21434的汽车网络安全实践
  • LRU 缓存
  • 【Apache Paimon】-- 11 -- Flink 消费 kakfa 写 S3 File
  • 全局JDK环境和ES自带的JDK混用导致的ES集群创建失败
  • Spring Boot 知识要点全解析
  • 04.HTTPS的实现原理-HTTPS的混合加密流程
  • 【魅力golang】之-玩转协程
  • Qt之QML应用程序开发:给应用程序添加图标文件
  • 【FastAPI】日志
  • element ui--下拉根据拼音首字母过滤
  • 纯真社区版IP库CZDB数据格式使用教程
  • 05.HTTPS的实现原理-HTTPS的握手流程(TLS1.2)
  • 【大语言模型】ACL2024论文-34 你的模型能区分否定和隐含意义吗?通过意图编码器揭开挑战
  • 美食推荐系统|Java|SSM|JSP|
  • w~视觉~3D~合集5
  • 如何编写 Prompt
  • 笔记工具--MD-Markdown的语法技巧