Java集合框架

Java集合框架

一、集合框架概述

1、引入集合框架

在我们的电子宠物系统中,如果想存储多个宠物信息, 可以使用数组来实现。例如,可以定义
一个长度为 50的Dog类型的数组存储多个Dog对象的信息,但是采用数组存在以下一些明显缺陷。

➢数组长度固定不变, 不能很好地适应元素数量动态变化的情况。若要存储大于50个狗狗的
信息,则数组长度不足:若只存储20个狗狗的信息,则造成内存空间浪费。
➢可通过数组名. length 获取数组的长度,却无法直接获取数组中真实存储的狗狗个数。
➢数组采用在内存中分配连续空间的存储方式,根据下标可以快速获取对应狗狗的信息,但
根据狗狗信息查找时效率低下,需要多次比较。在进行频繁插入,删除操作时同样效率
对中的

2、Java集合框架包含的内容

在这里插入图片描述
集合框架是为表示和操作集合而规定的一种统一的标准体系结构。 集合框架都包含三大块内容:
对外的接口、接口的实现和对集合运算的算法。
➢接口:表示集合的抽象数据类型在图中以虚线框表示,如Collection. List. Set. Map.
Iterator。
➢实现: 集合框架中接口的具体实现,在图6.1中以实线框表示,粗实线框表示最常用的实
现,如ArrayList. LinkedList. HashMap. HashSet。
➢算法: 在一个实现了某个集合框架中的接口的对象身上完成某种有用的计算的方法,如查
找、排序等。Java提供了进行集合操作的工具类Collections (注意不是Collection, 类似于
Arrays类),它提供了对集合进行排序等多种算法实现。在使用Collections的时候可以查阅
JDK帮助文档。

从图中可以清楚地看出Java集合框架中的两大类接口: Collection 和Map。其中,Collection
又有两个子接口: List和Set。 所以通常说Java集合框架共有三大类接口: List、 Set和Map。 它们的
失同点:都是集合接口,都可以用来存储很多对象。它们的区别如下。
➢Collection 接口存储一组不唯一(允许重复). 无序的对象。
➢Set接口继承Collection接口, 存储一组唯一(不允许重复)、无序的对象。
➢List接口继承Collection接口,存储一组不唯- (允许重复)、 有序(以元素插入的次序来放
置元素,不会重新排列)的对象。
➢Map接口存储一 组成对的键- 值对象,提供key (键) 到value (值) 的映射。Map中的key
不要求有序,不允许重复。value 同样不要求有序,但允许重复。
➢Iterator 接口是负责定义访问和遍历元素的接口。

二、List接口

实现List接口的常用类有ArrayList和LinkedLlist。它们都可以容纳所有类型的对象,包括null.
允许重复,并且都保证元素的存储顺序。
ArrayList对数组进行了封装,实现了长度可变的数组。ArrayList 存储数据的方式和数组相同,
都是在内存中分配连续的空间,如图6. 5所示。它的优点在于遍历元素和随机访问元素的效率比较高
在这里插入图片描述

ArrayList 存储方式示意图

LinkedLlist采用链表存储方式,如图6 6所示,优点在于插入、删除元素时效率比较高。它提伯
颈外的 adFirst( ). addLast( ) removeFirst( )和removeLast( )等方法,可以在LinkedList 的首部百
电部进行插入或删除操作。这些方法使得LinkedLlist可被用作堆栈(stack) 或者队列(queue)。
在这里插入图片描述

方法名称说明
boolean add(Object o)在列表末尾顺序添加元素,起始索引位置从0开始
void add(int index,Object o )在指定的索引位置添加元素,原索引位置及其后面的元素依次后移
int size()返回列表中的元素个数
Object get(int index)返回指定索引位置处的元素
boolean contains (Object o)判断列表中是否存在指定元素
boolean remova(Object o)从列表删除元素
Object remove (int index)从列表中删除指定位置元素,起始索引位置从0开始

LinkedList的一些特性方法

方法名称说明
void addFirst(Object o)在列表的首部添加元素
void addLast(Object o)在列表的末尾添加元素
Object getFirst()返回列表中的第一个元素
Object getLast()返回列表中的最后一个元素
Object removaFirst()删除并返回列表中第一个元素
Object removeLast()删除并返回列表中的最后一个元素

三、Map接口

1.HashMap集合类

Mpa接口存储一组成对的键-值对象,提供key到value的映射。Map中key不要求有序,不允许重复,value不要求有序,但允许重复

1、存储方式:key:value
2、实现类:
HashMap:线程不安全,速度快
Hashtable:操作类似HashMap,线程安全
ConcurrentMap:操作类似HashMap,线程安全,
实现安全的方式比hashtable更优—》针对线程安全部分代码做了优化
ashMap,线程安全
ConcurrentMap:操作类似HashMap,线程安全,
实现安全的方式比hashtable更优—》针对线程安全部分代码做了优化
TreeMap:1、对key进行排序;2不能以null为key【二叉树算法】

【电力系统】单机无穷大电力系统短路故障暂态稳定Simulink仿真(带说明文档)内容概要:本文档围绕“单机无穷大电力系统短路故障暂态稳定Simulink仿真”展开,提供了完整的仿真模型与说明文档,重点研究电力系统在发生短路故障后的暂态稳定性问题。通过Simulink搭建单机无穷大系统模型,模拟不同类型的短路故障(如三相短路),分析系统在故障期间及切除后的动态响应,包括发电机转子角度、转速、电压和功率等关键参数的变化,进而评估系统的暂态稳定能力。该仿真有助于理解电力系统稳定性机理,掌握暂态过程分析方法。; 适合人群:电气工程及相关专业的本科生、研究生,以及从事电力系统分析、运行与控制工作的科研人员和工程师。; 使用场景及目标:①学习电力系统暂态稳定的基本概念与分析方法;②掌握利用Simulink进行电力系统建模与仿真的技能;③研究短路故障对系统稳定性的影响及提高稳定性的措施(如故障清除时间优化);④辅助课程设计、毕业设计或科研项目中的系统仿真验证。; 阅读建议:建议结合电力系统稳定性理论知识进行学习,先理解仿真模型各模块的功能与参数设置,再运行仿真并仔细分析输出结果,尝试改变故障类型或系统参数以观察其对稳定性的影响,从而深化对暂态稳定问题的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值