JAVA集合框架

简介:

在JAVA中专门设计了一组类,他们实现了各种各样的数据存储,这种专门用来存储其他对象的类,被称为容器类,这组类和接口的设计结构也被称为集合框架(Collection Framework)。
JAVA集合主要分为三种类型。

  • Set(集):集合中的对象不按照特定顺序排序,不允许有重复对象。某些实现类可以对集合中对象按特定方式排序。
  • List(列表):集合中的对象按照索引位置排序,允许有重复对象。List和数组有些相似。
  • Map(映射):集合中每个元素包含一个键(Key)和一个值(Value),集合中的键不可以重复,值可以重复。

JAVA集合框架容器类关系图

Collection和Iterator接口

在Collection接口中声明了适应于JAVA集合(包括Set和List)的通用方法,JDK不提供接口的任何直接实现,而是通过其更具体的子类(Set和List)实现。

Collection方法摘要

返回值 方法名 说明
boolean add(E e) 确保此 collection 包含指定的元素(可选操作)
boolean addAll(Collection c) 将指定 collection 中的所有元素都添加到此 collection 中(可选操作)
void clear() 移除此 collection 中的所有元素(可选操作)
boolean contains(Object o) 如果此 collection 包含指定的元素,则返回 true
boolean containsAll(Collection c) 如果此 collection 包含指定 collection 中的所有元素,则返回 true
boolean equals(Object o) 比较此 collection 与指定对象是否相等
int hashCode() 返回此 collection 的哈希码值
boolean isEmpty() 如果此 collection 不包含元素,则返回 true
Iterator< E> iterator() 返回在此 collection 的元素上进行迭代的迭代器
boolean remove(Object o) 从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)
boolean removeAll(Collection< ?> c) 移除此 collection 中那些也包含在指定 collection 中的所有元素(可选操作)
boolean retainAll(Collection< ?> c) 仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)
int size() 返回此 collection 中的元素数
Object[] toArray() 返回包含此 collection 中所有元素的数组
< T> T[] toArray(T[] a) 返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同

在Collection对象中并没有提供获取元素的方法。如果需要遍历Collection中的元素,一般采用Iterator遍历器。使用Iterator可以遍历集合中的各个对象元素。

Iterator方法摘要

返回值 方法名 说明
boolean hasNext() 如果仍有元素可以迭代,则返回 true
E next() 返回迭代的下一个元素
void remove() 从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)

Map接口

Map接口不是Collection的子类,Map是一种把键对象和值对象进行映射的集合,它的每一个元素都包含了一对键对象和值对象。Map中不能有重复的键Map中存的键值对是通过键作为标识的。

Map方法摘要

返回值 方法名 说明
void clear() 从此映射中移除所有映射关系(可选操作)
boolean containsKey(Object key) 如果此映射包含指定键的映射关系,则返回 true
boolean containsValue(Object value) 如果此映射将一个或多个键映射到指定值,则返回 true
Set< Map.Entry> entrySet() 返回此映射中包含的映射关系的 Set 视图
boolean equals(Object o) 比较指定的对象与此映射是否相等
V get(Object key) 返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null
int hashCode() 返回此映射的哈希码值
boolean isEmpty() 如果此映射未包含键-值映射关系,则返回 true
Set< K> keySet() 返回此映射中包含的键的 Set 视图
V put(K key, V value) 将指定的值与此映射中的指定键关联(可选操作)
void putAll(Map< ? extends K,? extends V> m) 从指定映射中将所有映射关系复制到此映射中(可选操作)
V remove(Object key) 如果存在一个键的映射关系,则将其从此映射中移除(可选操作)
int size() 返回此映射中的键-值映射关系数
Collection< V> values() 返回此映射中包含的值的 Collection 视图

这一篇博客只是简单的介绍下JAVA集合框架,接下来的几篇博客中将逐一的介绍JAVA集合框架中常用的实现类。

目录
相关文章
|
5天前
|
Java 大数据 API
Java Stream API:现代集合处理与函数式编程
Java Stream API:现代集合处理与函数式编程
164 100
|
5天前
|
Java API 数据处理
Java Stream API:现代集合处理新方式
Java Stream API:现代集合处理新方式
158 101
|
18天前
|
算法 Java
50道java集合面试题
50道 java 集合面试题
|
10天前
|
人工智能 Java 开发者
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
JManus是阿里开源的Java版OpenManus,基于Spring AI Alibaba框架,助力Java开发者便捷应用AI技术。支持多Agent框架、网页配置、MCP协议及PLAN-ACT模式,可集成多模型,适配阿里云百炼平台与本地ollama。提供Docker与源码部署方式,具备无限上下文处理能力,适用于复杂AI场景。当前仍在完善模型配置等功能,欢迎参与开源共建。
346 1
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
|
10天前
|
存储 Java Go
对比Java学习Go——函数、集合和OOP
Go语言的函数支持声明与调用,具备多返回值、命名返回值等特性,结合`func`关键字与类型后置语法,使函数定义简洁直观。函数可作为一等公民传递、赋值或作为参数,支持匿名函数与闭包。Go通过组合与接口实现面向对象编程,结构体定义数据,方法定义行为,接口实现多态,体现了Go语言的简洁与高效设计。
|
1月前
|
存储 缓存 安全
Java集合框架(二):Set接口与哈希表原理
本文深入解析Java中Set集合的工作原理及其实现机制,涵盖HashSet、LinkedHashSet和TreeSet三大实现类。从Set接口的特性出发,对比List理解去重机制,并详解哈希表原理、hashCode与equals方法的作用。进一步剖析HashSet的底层HashMap实现、LinkedHashSet的双向链表维护顺序特性,以及TreeSet基于红黑树的排序功能。文章还包含性能对比、自定义对象去重、集合运算实战和线程安全方案,帮助读者全面掌握Set的应用与选择策略。
143 23
|
23天前
|
SQL Java 数据库连接
区分iBatis与MyBatis:两个Java数据库框架的比较
总结起来:虽然从技术角度看,iBATIS已经停止更新但仍然可用;然而考虑到长期项目健康度及未来可能需求变化情况下MYBATISS无疑会是一个更佳选择因其具备良好生命周期管理机制同时也因为社区力量背书确保问题修复新特征添加速度快捷有效.
56 12
|
1月前
|
存储 缓存 安全
Java集合框架(三):Map体系与ConcurrentHashMap
本文深入解析Java中Map接口体系及其实现类,包括HashMap、ConcurrentHashMap等的工作原理与线程安全机制。内容涵盖哈希冲突解决、扩容策略、并发优化,以及不同Map实现的适用场景,助你掌握高并发编程核心技巧。
|
1月前
|
安全 Java 开发者
Java集合框架:详解Deque接口的栈操作方法全集
理解和掌握这些方法对于实现像浏览器后退功能这样的栈操作来说至关重要,它们能够帮助开发者编写既高效又稳定的应用程序。此外,在多线程环境中想保证线程安全,可以考虑使用ConcurrentLinkedDeque,它是Deque的线程安全版本,尽管它并未直接实现栈操作的方法,但是Deque的接口方法可以相对应地使用。
116 12
|
1月前
|
存储 NoSQL Java
Java Stream API:集合操作与并行处理
Stream API 是 Java 8 提供的集合处理工具,通过声明式编程简化数据操作。它支持链式调用、延迟执行和并行处理,能够高效实现过滤、转换、聚合等操作,提升代码可读性和性能。