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

UML,集合框架

1.什么是UML

UML是统一建模语言的简称,它是一种由一整套图表组成的标准化建模语言。UML用于帮助系统开发人员阐明,展示,构建和记录软件系统的产出。UML代表了一系列在大型而复杂系统建模中被证明是成功的做法,是开发面向对象软件和软件开发过程中非常重要的一部分。UML主要使用图形符号来表示软件项目的设计,使用UML可以帮助项目团队沟通、探索潜在的设计和验证软件的架构设计。

2.ArrayList、LinkedList和Vector的区别


1)ArrayList和LinkedList的区别


相同点:
1、LinkedeList和ArrayList都实现了List接口。
2、ArrayList和LinkedList是两个集合类,用于存储一系列的对象引用(references)。
不同点:
1、ArrayList底层实现是数组,而LinkedList是双向链表。
2、ArrayList查询快(下标)、增删改慢、LinkedList是查询慢,但是在插入删除时效率比较高。

2)ArrayList和Vector的区别


相同点:
1、ArrayList和Vector都是用数组实现的
2、默认初始化大小都是10


不同点:
1、Vector多线程是安全的,而ArrayList不是。Vector类中的方法很多有synchronized进行修饰,这样就导致了Vector在效率上无法与ArrayList相比;
2、两个都是采用的线性连续空间存储元素,但是当空间不足的时候,两个类的增加方式是不同的。(ArrayList每次存储时会检查空间大小,不够时会扩充为原来的1.5倍,Vector会扩充为原来空间的2倍)


3.HashSet、LinkedHashSet和TreeSet的特点:


1)HashSet
- 它不允许出现重复元素;
- 不保证集合中元素的顺序
- 允许包含值为null的元素,但最多只能有一个null元素。
- HashSet的实现是不同步的。
2)LinkedHashSet:
- 哈希表和链表实现Set接口,具有可预测的迭代次序;
- 由链表保证元素有序,也就是说元素的存储和取出顺序是一致的。
- 由哈希值保证元素唯一,也就是说没有重复的元素
2)TreeSet:
TreeSet 是一个有序的集合,它的作用是提供有序的Set集合。TreeSet是基于TreeMap实现的。TreeSet中的元素支持2种排序方式:自然排序 或者 根据创建TreeSet 时提供的 Comparator 进行排序。

4.HashMap与Hashtable的区别

1)HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,在只有一个线程访问的情况下,效率要高于Hashtable。
2)HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
3)HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。
4)Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。
Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。

就HashMap与HashTable主要从三方面来说。
1)历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现;
2)同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的;
3)值:只有HashMap可以让你将空值作为一个表的条目的key或value

5.List,Set,Map三者的区别及总结

List:对付顺序的好帮手
List接口存储一组不唯一(可以有多个元素引用相同的对象),有序的对象

Set:注重独一无二的性质
不允许重复的集合。不会有多个元素引用相同的对象。

Map:用Key来搜索的专家
使用键值对存储。Map会维护与Key有关联的值。两个Key可以引用相同的对象,但Key不能重复,典型的Key是String类型,但也可以是任何对象。

http://www.lryc.cn/news/177261.html

相关文章:

  • 如何快速轻松自动添加微信好友?
  • MySQL高级语句(第一部分)
  • Perl区分文件换行符类型
  • 数据备份文件生成--根据表名生成对应的sql语句文件
  • 进程同步与互斥
  • mysql workbench常用操作
  • 【操作】国标GB28181视频监控EasyGBS平台更新设备信息时间间隔
  • TensorFlow入门(八、TensorBoard可视化工具的应用)
  • 升级targetSdkVersion至33(以及迁移至Androidx)
  • python3.11版本pip install ddddocr调用时报错got an unexpected keyword argument ‘det‘ 解决
  • 代理IP与Socks5代理:跨界电商之安全防护与智能数据引擎
  • 如何评估一个HR是否专业?看这些标准
  • WordPress主题开发( 八)之—— 模板循环详细用法
  • QT : 完成绘制时钟
  • 香港云服务器和日本云服务器哪个好?(详细对比)
  • Cross Attention和 Self- Attention 的区别?
  • 《从零开始的Java世界》02面向对象(基础)
  • pve关闭windows虚拟机慢
  • 【Django】 rest_framework接口开发流程及接口功能组成
  • Kafka Log存储解析以及索引机制
  • 广告电商模式:探索新商业模式,实现三方共赢
  • 动态线程池框架DynamicTp v1.1.4大版本发布,新增若干实用特性
  • 无线通信——Mesh自组网的多跳性
  • QA 云计算实验问题汇总
  • VEX —— Functions|Groups
  • JavaSE18——接口
  • 杭州亚运会开幕式惊现数字人火炬手,动捕设备迸发动画制作新动能
  • ptmalloc源码分析 - malloc/free函数的实战篇(12)
  • 博弈论(奇偶考虑法)+计数+DP(判定转dp):CF838C
  • 郁金香2021年游戏辅助技术中级班(一)