Java Collections集合继承结构图_动力节点Java学院整理

发布时间 - 2026-01-11 00:52:55    点击率:

面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。

数组虽然也可以存储对象,但长度是固定的;集合长度是可变的,数组中可以存储基本数据类型,集合只能存储对象。
集合类的特点:集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。 

集合框架图  

Collection (集合的最大接口)继承关系

  ——List 可以存放重复的内容
  ——Set  不能存放重复的内容,所以的重复内容靠hashCode()和equals()两个方法区分
  ——Queue  队列接口
  ——SortedSet  可以对集合中的数据进行排序

Collection定义了集合框架的共性功能。

1,添加

add(e);
addAll(collection);

2,删除

remove(e);
removeAll(collection);
clear();

3,判断。

contains(e);
isEmpty();

4,获取

iterator();
size();

5,获取交集。

retainAll();

6,集合变数组。

toArray();

*add方法的参数类型是Object。以便于接收任意类型对象。
*集合中存储的都是对象的引用(地址)

List的常用子类

List:

特有方法。凡是可以操作角标的方法都是该体系特有的方法。


add(index,element);
addAll(index,Collection);


remove(index);


set(index,element);


get(index):
subList(from,to);
listIterator();
int indexOf(obj):获取指定元素的位置。
ListIterator listIterator();
——ArrayList   线程不安全,查询速度快
——Vector  线程安全,但速度慢,已被ArrayList替代
——LinkedList  链表结果,增删速度快

Set接口

Set:元素是无序(存入和取出的顺序不一定一致),元素不可以重复。

|——HashSet:底层数据结构是哈希表。是线程不安全的。不同步。

  HashSet是如何保证元素唯一性的呢?

  是通过元素的两个方法,hashCode和equals来完成。

  如果元素的HashCode值相同,才会判断equals是否为true。

  如果元素的hashcode值不同,不会调用equals。

  注意,对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashcode和equals方法。

——TreeSet:

有序的存放:TreeSet  线程不安全,可以对Set集合中的元素进行排序

通过compareTo或者compare方法来保证元素的唯一性,元素以二叉树的形式存放。

集合的输出

4种常见的输出方式

  ——Iterator: 迭代输出,使用最多的输出方式
  ——ListIterator: Iterator的子接口,专门用于输出List中的内容
  ——Enumeration
  ——foreach

在迭代时,不可以通过集合对象的方法操作集合中的元素。

因为会发生ConcurrentModificationException异常。

所以,在迭代器时,只能用迭代器的放过操作元素,可是Iterator方法是有限的,

只能对元素进行判断,取出,删除的操作,

如果想要其他的操作如添加,修改等,就需要使用其子接口,ListIterator。

该接口只能通过List集合的listIterator方法获取。

Map接口

Correction、Set、List接口都属于单值的操作,而Map中的每个元素都使用key——>value的形式存储在集合中。

Map集合:该集合存储键值对。一对一对往里存。而且要保证键的唯一性。

1,添加。

put(K key, V value)
putAll(Map<? extends K,? extends V> m)

2,删除。

clear()
remove(Object key)

3,判断。

containsValue(Object value)
containsKey(Object key)
isEmpty()

4,获取。

get(Object key)
size()
values()
entrySet()
keySet()

8、Map接口的常用子类

Map

|HashMap:底层是哈希表数据结构,允许使用 null 值和 null 键,该集合是不同步的。将hashtable替代,jdk1.2.效率高。

|--TreeMap:底层是二叉树数据结构。线程不同步。可以用于给map集合中的键进行排序。

集合工具类

Collections:集合框架的工具类。里面定义的都是静态方法。

Collections和Collection有什么区别?

Collection是集合框架中的一个顶层接口,它里面定义了单列集合的共性方法。

它有两个常用的子接口,

List:对元素都有定义索引。有序的。可以重复元素。

Set:不可以重复元素。无序。

Collections是集合框架中的一个工具类。该类中的方法都是静态的

提供的方法中有可以对list集合进行排序,二分查找等方法。

通常常用的集合都是线程不安全的。因为要提高效率。

如果多线程操作这些集合时,可以通过该工具类中的同步方法,将线程不安全的集合,转换成安全的。

以上所述是小编给大家介绍的Java Collections集合继承结构图_动力节点Java学院整理,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# java  # collections  # 集合类的继承结构  # Java后台通过Collections获取list集合中最大数  # 最小数代码  # Java集合框架Collections原理及用法实例  # JAVA对list集合进行排序Collections.sort()  # JavaSE的三大接口:Comparator  # Comparable和Cloneable详解  # Java Comparable及Comparator接口区别详解  # Java Comparable和Comparator对比详解  # Java 比较接口comparable与comparator区别解析  # Java Comparable 和 Comparator 的详解及区别  # 浅析Java中comparator接口与Comparable接口的区别  # 对比Java中的Comparable排序接口和Comparator比较器接口  # java 集合工具类Collections及Comparable和Comparator排序详解  # 都是  # 不安全  # 以对  # 不可以  # 数据结构  # 迭代  # 子类  # 速度快  # 小编  # 类中  # 都有  # 二叉树  # 多个  # 最多  # 在此  # 结构图  # 才会  # 已被  # 中有  # 其他的 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: linux写shell需要注意的问题(必看)  Laravel如何与Inertia.js和Vue/React构建现代单页应用  浅谈Javascript中的Label语句  如何在万网开始建站?分步指南解析  WordPress 子目录安装中正确处理脚本路径的完整指南  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  Laravel集合Collection怎么用_Laravel集合常用函数详解  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  济南网站建设制作公司,室内设计网站一般都有哪些功能?  Laravel如何使用Telescope进行调试?(安装和使用教程)  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  利用 Google AI 进行 YouTube 视频 SEO 描述优化  手机网站制作与建设方案,手机网站如何建设?  Linux系统命令中tree命令详解  Linux安全能力提升路径_长期防护思维说明【指导】  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  详解vue.js组件化开发实践  七夕网站制作视频,七夕大促活动怎么报名?  如何快速打造个性化非模板自助建站?  Laravel如何生成API文档?(Swagger/OpenAPI教程)  Laravel如何使用Sanctum进行API认证?(SPA实战)  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  iOS中将个别页面强制横屏其他页面竖屏  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  手机软键盘弹出时影响布局的解决方法  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  大同网页,大同瑞慈医院官网?  如何快速生成凡客建站的专业级图册?  如何正确下载安装西数主机建站助手?  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  JavaScript如何实现倒计时_时间函数如何精确控制  香港服务器租用每月最低只需15元?  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  如何在 Pandas 中基于一列条件计算另一列的分组均值  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  如何构建满足综合性能需求的优质建站方案?  如何在万网利用已有域名快速建站?  深入理解Android中的xmlns:tools属性  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  如何快速搭建高效简练网站?  个人摄影网站制作流程,摄影爱好者都去什么网站?  node.js报错:Cannot find module &#39;ejs&#39;的解决办法  如何用IIS7快速搭建并优化网站站点?