JAVA中的集合框架

Collection 接口

Collection是所有单值集合的顶级接口,它不直接实现任何具体集合,但它定义了集合的基本操作,如添加、删除、检查成员、遍历等。Collection接口有几个子接口,包括 List,Set 和Queue,它们分别代表不同类型的集合。

set接口

HashSet:基于 HashMap 实现的,不保证集合的迭代顺序;允许使用 null 元素。

HashSet不是同步的,如果多个线程同时访问一个Set,只要有一个线程修改Set中的值,就必须进行同步处理,通常通过同步封装这个Set的对象来完成同步,如果不存在这样的对象,可以使用Collections.synchronizedSet()方法完成。

在创建时使用语句 Set s = Collections.synchronizedSet(new HashSet(...)); 防止意外的对集合的非同步访问

LinkedHashSet:具有 HashSet 的所有特性,同时遍历其内部元素时,可以按照元素被添加到集合中的顺序(插入顺序)进行遍历

TreeSet:基于 TreeMap 的 NavigableSet 实现,可以确保集合元素处于排序状态

Queue接口

LinkedList(也实现了 Queue 接口):作为列表时提供了基于链表的所有操作,作为队列时提供了队列的所有操作。

PriorityQueue:基于优先级堆的一个无界优先级队列。

ArrayDeque:是一个基于数组的双端队列,支持在两端插入和移除元素

List 接口

ArrayList:基于动态数组实现的列表,允许包含重复元素。

LinkedList:基于链表实现的列表,允许包含重复元素,且提供了额外的双端队列操作。

Vector:与 ArrayList 类似,但它是同步的,意味着它在多线程环境下是安全的,但性能相对较差。

Stack:继承自 Vector,实现了一个后进先出(LIFO)的堆栈。

Map 接口

Map 接口用于存储键值对集合,一个键可以映射到最多一个值。

HashMap:基于哈希表的 Map 接口实现,允许使用 null 值和 null 键。

LinkedHashMap:是 HashMap 的一个子类,它维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代器的遍历顺序,该顺序可以是插入顺序或者是访问顺序。

TreeMap:基于红黑树(Red-Black tree)的 NavigableMap 实现,可以确保映射按照键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序。

Hashtable:是同步的,类似于 HashMap,但它不允许 null 键和 null 值。

Properties:继承自 Hashtable,表示一个持久的属性集,可以保存在流中或从流中加载。

相关推荐
lisw052 分钟前
分岔论揭示演化突变密码
开发语言·算法·数学建模
hunteritself4 分钟前
AI 挖出 PHP「致命漏洞」!欧洲政府连夜关站,日本首相紧急喊话
开发语言·人工智能·php
Linux运维技术栈10 分钟前
CVE-2026-91403 高危漏洞预警:Java JSSE 信任链被攻破 全场景修复方案与Linux系统级彻底清理实操
java·linux·安全·jdk·信任链
努力实干19 分钟前
Qt/C++ 模块化设计与工程组织
开发语言·c++·qt
秋饼19 分钟前
Spring AI + MCP 工具调用可靠性实战:参数校验、权限防线与人工确认生产级落地
java·ai·技术分享·后端开发
步行cgn22 分钟前
RESTful 是什么?怎么记住它?
java
随性而行36023 分钟前
企业微信 Webhook 接收不到消息?网络连通性、URL 签名验签与 API 返回错误码排查指南
java·网络·人工智能·后端·微信·企业微信
薛之谦_25 分钟前
JD Hotkey 项目实战:京东开源的热点探测与秒杀系统
java·安全
yuzhiboyouye25 分钟前
@EnumValue和@JsonValue
java
阿里嘎多学长26 分钟前
2026-10-23 GitHub 热点项目精选
开发语言·程序员·github·代码托管