数据结构复习1
1、什么是集合?
就是一组数据的集合体,就像篮子装着苹果、香蕉等等,这些“水果”就代表数据,“篮子”就是这个集合。
集合的特点:
集合用于存储对象。
对象是确定的个数可以用数组,如果不确定可以用集合,因为集合的长度是可以变化的。
集合和数组的区别:
数组的长度是固定的,集合的长度是可变的。
数组可以存储基本数据类型,也可以存储引用数据类型,而集合只能存储引用数据类型。
2、什么是集合框架?
就像是一个“工具箱”,里面装满了这种“容器”,这些“容器”都有自己的用途和特点。
(List、Set、Map)
3、什么是接口?
就是一种规范,规定了某个对象必须实现哪些方法,但不必关注如何具体实现,就像是去餐馆里点菜,只要点想要的菜,不需要知道菜是具体怎么做的。
4、什么是算法?
在一个实现了集合框架的接口的对象上完成某种有用的计算方法。
5、什么是数据结构?
就是容器中存储数据的方式。
使用一个体系的原则:参阅顶层内容,建立底层对象。
6、使用集合框架的好处
容量自增长。
提供了高性能的数据结构和算法。
允许不同API之间互相操作。
可以方便地扩展或改写集合。
通过使用JDK(Java开发工具包)自带的集合类,可以代码维护和学习新API的成本。
7、常用的集合类有哪些?
常用的集合类主要分为两大类:实现Collection接口的集合类和实现Map接口的映射类。
Collection接口的子接口包括:List接口和Set接口。
List接口的实现类主要有:ArrayList、LinkedList、Vector等等。
Set接口的实现类主要有:HashSet、LinkedHashSet、TreeSet等等。
Map接口的实现类主要有:HashMap、LinkedHashMap、TreeMap等等。
8、List、Set、Map的区别
List:一个有序容器,可以存储重复元素,可以插入多个null元素,元素都有索引。
Set:一个无序容器,不可以存储重复元素,只允许插入一个null元素,必须确保元素的唯一性。
Map:是一个键值对集合,存储键和值之间的映射。Key无序,唯一;value不要求有序,可以不唯一。
9、集合框架底层数据结构
List接口:
ArrayList:Object数组,当添加或删除元素时,如果数组满了或者有空余空间,ArrayList会自动调整数组大小。
Vector:Object数组,线程安全。
LinkedList:双向链表,在开始和结束处添加或删除元素会非常快。
Set接口:
HashSet:无序、唯一,基于HashMap实现的,底层采用HashMap实现。
LinkedHashSet:和HashSet差不多,但它还有一个双向链表用来记录元素的插入顺序,所以遍历LinkedHashSet时,元素会按照被添加的顺序出现。
TreeSet:有序、唯一,通过红黑树来实现的(平衡二叉树)。
Map接口:
HashMap:在JDK1.8之前,它主要是由数组和链表组成的,数组是HashMap的主体,链表则主要是为了解决哈希冲突而存在的。从JDK1.8开始,如果链表太长(默认超过8个元素),就会转换为红黑树来优化性能。
LinkedHashMap:增加了一条双向链表,使得可以保持键值对的插入顺序。
HashTable:和HashMap类似,线程安全。
TreeMap:基于红黑树实现的。
10、哪些集合类是线程安全的?
Vector、Stack(堆栈类,先进后出)、HashTable、Enumeration(枚举,相当于迭代器)
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
数据结构复习1
1、什么是集合? 就是一组数据的集合体,就像篮子装着苹果、香蕉等等,这些“水果”就代表数据,“篮子”就是这个集合。 集合的特点: 集合用于存储对象。 对象是确定的个数可以用数组,如果不确定可以用集合…...
![](https://www.ngui.cc/images/no-images.jpg)
订单管理系统需求规范
1. 引言 1.1 目的 本文档旨在明确描述订单管理系统的功能、非功能性需求以及约束条件,以指导系统的分析、设计、开发、测试和部署。 1.2 范围 本系统将支持在线订单处理,从客户下单到完成配送的全过程管理,包括库存管理、支付处理、订单跟…...
![](https://i-blog.csdnimg.cn/direct/d5cf100fc5e24fb6ae3d3b3360981421.gif)
swiftui使用ScrollView实现左右滑动和上下滑动的效果,仿小红书页面
实现的效果如果所示,顶部的关注用户列表可以左右滑动,中间的内容区域是可以上下滚动的效果,点击顶部的toolbar也可以切换关注/发现/附近不同页面,实现翻页效果。 首页布局 这里使用了NavigationStack组件和tabViewStyle样式配置…...
![](https://www.ngui.cc/images/no-images.jpg)
深入理解并使用 MySQL 的 SUBSTRING_INDEX 函数
引言 在处理字符串数据时,经常需要根据特定的分隔符来分割字符串或提取字符串的特定部分。MySQL 提供了一个非常有用的函数 SUBSTRING_INDEX 来简化这类操作。本文将详细介绍 SUBSTRING_INDEX 的使用方法、语法,以及通过实际案例来展示其在数据库查询中…...
![](https://i-blog.csdnimg.cn/direct/10b1445f118f43b9b42feb2341570588.png)
elementUI在手机端使用遇到的问题总结
之前的博客有写过用vue2elementUI封装手机端选择器picker组件,支持单选、多选、远程搜索多选,最终真机调试的时候发现有很多细节样式需要调整。此篇博客记录下我调试过程中遇到的问题和解决方法。 一、手机真机怎么连电脑本地代码调试? 1.确…...
![](https://i-blog.csdnimg.cn/direct/c742c0ebafea4af08ee037a5c69d5a3f.png#pic_center)
【初阶数据结构】5.栈和队列
文章目录 1.栈1.1 概念与结构1.2 栈的实现2.队列2.1 概念与结构2.2 队列的实现3.栈和队列算法题3.1 有效的括号3.2 用队列实现栈3.3 用栈实现队列3.4 设计循环队列 1.栈 1.1 概念与结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操…...
![](https://i-blog.csdnimg.cn/direct/f53b9a8aeef94191a61ed2e88243164d.png)
高通Android 12 设置Global属性为null问题
1、最近在做app调用framework.jar需求,尝试在frameworks/base/packages/SettingsProvider/res/values/defaults.xml增加属性 <integer name"def_xxxxx">1</integer> 2、在frameworks\base\packages\SettingsProvider\src\com\android\provide…...
![](https://www.ngui.cc/images/no-images.jpg)
Xcode代码静态分析:构建无缺陷代码的秘诀
Xcode代码静态分析:构建无缺陷代码的秘诀 在软件开发过程中,代码质量是至关重要的。Xcode作为Apple的官方集成开发环境(IDE),提供了强大的代码静态分析工具,帮助开发者在编写代码时发现潜在的错误和问题。…...
![](https://i-blog.csdnimg.cn/direct/09a90bb619ed4a65a321e34aa23bbd5c.png)
Qt各个版本安装的保姆级教程
文章目录 前言Qt简介下载Qt安装包安装Qt找到Qt的快捷方式总结 前言 Qt是一款跨平台的C图形用户界面应用程序开发框架,广泛应用于桌面软件、嵌入式软件、移动应用等领域。Qt的强大之处在于其高度的模块化和丰富的工具集,可以帮助开发者快速、高效地构建出…...
![](https://i-blog.csdnimg.cn/direct/f829641dd7284cf484c4dfc2a265489b.png)
数学建模--优劣解距离法TOPSIS
目录 简介 TOPSIS法的基本步骤 延伸 优劣解距离法(TOPSIS)的历史发展和应用领域有哪些? 历史发展 应用领域 如何准确计算TOPSIS中的理想解(PIS)和负理想解(NIS)? TOPSIS方法在…...
![](https://www.ngui.cc/images/no-images.jpg)
Springboot开发之 Excel 处理工具(三) -- EasyPoi 简介
引言 Springboot开发之 Excel 处理工具(一) – Apache POISpringboot开发之 Excel 处理工具(二)-- Easyexcel EasyPoi是一款基于 Apache POI 的高效 Java 工具库,专为简化 Excel 和 Word 文档的操作而设计。以下是对…...
![](https://img-blog.csdnimg.cn/direct/df413fc3bbea46f7962bc7fe31fa6a01.png)
【BUG】已解决:python setup.py bdist_wheel did not run successfully.
已解决:python setup.py bdist_wheel did not run successfully. 目录 已解决:python setup.py bdist_wheel did not run successfully. 【常见模块错误】 解决办法: 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主…...
![](https://www.ngui.cc/images/no-images.jpg)
Java 中如何支持任意格式的压缩和解压缩
👆🏻👆🏻👆🏻关注博主,让你的代码变得更加优雅。 前言 Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率…...
![](https://i-blog.csdnimg.cn/direct/861a10ec65384a9f8e94f92936c8e6d2.png#pic_center)
从零开始实现大语言模型(八):Layer Normalization
1. 前言 Layer Normalization是深度学习实践中已经被证明非常有效的一种解决梯度消失或梯度爆炸问题,以提升神经网络训练效率及稳定性的方法。OpenAI的GPT系列大语言模型使用Layer Normalization对多头注意力模块,前馈神经网络模块以及最后的输出层的输入张量做变换,使shap…...
![](https://i-blog.csdnimg.cn/direct/21747583d3af4fd594a82e5bf705c379.png)
<数据集>混凝土缺陷检测数据集<目标检测>
数据集格式:VOCYOLO格式 图片数量:7353张 标注数量(xml文件个数):7353 标注数量(txt文件个数):7353 标注类别数:6 标注类别名称:[exposed reinforcement, rust stain, Crack, Spalling, Efflorescence…...
![](https://i-blog.csdnimg.cn/direct/2b7f5c9c2e5e472cb8b16aff60ebe598.png)
【LabVIEW作业篇 - 3】:数组相加、for循环创建二位数组、数组练习(求最大最小值、平均值、中位数、提取范围内的数据、排序)
文章目录 数组相加for循环实现直接使用加函数 for循环创建二位数组数组练习 数组相加 要求:用两种方法实现两个数组相加 for循环实现 在前面板中分别创建两个数值类型的一维数组,并设置相应的值,然后在程序框图中创建一个for循环ÿ…...
![](https://i-blog.csdnimg.cn/direct/9e172ca7bef449ca9d5f0cae3060d351.png)
Unity动画系统(4)
6.3 动画系统高级1-1_哔哩哔哩_bilibili p333- 声音组件添加 using System.Collections; using System.Collections.Generic; using UnityEngine; public class RobotAnimationController : MonoBehaviour { [Header("平滑过渡时间")] [Range(0,3)] publ…...
![](https://img-blog.csdnimg.cn/img_convert/a8627bf62e77638b4e93f30ca8ba83a6.webp?x-oss-process=image/format,png)
React基础学习-Day08
React基础学习-Day08 React生命周期(旧)(新)(函数组件) (旧) 在 React 16 版本之前,React 使用了一套不同的生命周期方法。这些生命周期方法在 React 16 中仍然可以使用…...
![](https://i-blog.csdnimg.cn/direct/d3ea5412ca564ff3a128ae57359b95c1.png)
Flowable的学习一
今日项目用到了Flowable。简单记录下。 学习中 参考了网上资料: 工作流-Activiti7-基础讲解_activity工作流-CSDN博客 https://juejin.cn/post/7158342433615380517 flowable实战(九)flowable数据库表中流程实例、活动实例、任务实例三者…...
![](https://img-blog.csdnimg.cn/img_convert/a1704348dad26a01a070ec27be75f427.png)
django-vue-admin项目运行
文本主要对django-vue-admin项目进行了简要介绍,并且对前后端进行了源码安装和运行。在此基础上可作为管理系统二次开发的基础框架。 一.django-vue-admin简介和安装 1.简介 django-vue-admin项目是基于RBAC模型权限控制的中小型应用的基础开发平台,采…...
![](https://i-blog.csdnimg.cn/direct/7d6d6c292e754100aee045a0f65f5908.png)
4. docker镜像、Dockerfile
docker镜像、Dockerfile 一、docker镜像1、镜像介绍2、镜像核心技术 二、Dockerfile定制镜像1、Dockerfile使用流程1.1 编写Dockerfile1.2、构建镜像1.3 创建容器测试镜像定制操作 2、Dockerfile常用指令 三、部署springcloud微服务架构的商品秒杀项目1、部署项目需要的基础服务…...
![](https://www.ngui.cc/images/no-images.jpg)
智能水果保鲜度检测:基于YOLO和深度学习的完整实现
引言 水果新鲜程度直接影响其口感和营养价值。为了提高水果品质管理的效率和准确性,本文介绍了一种基于深度学习的水果新鲜程度检测系统。该系统包括用户界面,利用YOLO(You Only Look Once)v8/v7/v6/v5模型进行水果新鲜程度检测&…...
![](https://www.ngui.cc/images/no-images.jpg)
C#中implicit 关键字的使用:隐式转换操作符
在 C# 中,implicit 关键字用于定义隐式转换操作符。隐式转换操作符允许自动将一种数据类型转换为另一种类型,而无需显式地调用转换方法或进行类型转换。下面将详细介绍 implicit 关键字的定义和使用。 1. 隐式转换操作符 定义 隐式转换操作符可以定义在一个类或结构体中,…...
![](https://www.ngui.cc/images/no-images.jpg)
Laravel表单验证:自定义规则的艺术
Laravel表单验证:自定义规则的艺术 在Web应用开发中,表单验证是确保数据完整性和安全性的关键步骤。Laravel提供了一个强大且灵活的验证系统,允许开发者定义自定义验证规则,以满足特定的业务需求。本文将详细介绍如何在Laravel中…...
![](https://i-blog.csdnimg.cn/direct/d929d1756a884015ad414db936598e28.png)
Linux中的环境变量
一、环境变量定义 一般是指在操作系统中用来指定操作系统运行环境的一些参数 如:我们在编写C/C代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但 是照样可以链接成功,生成可执行程序,…...
![](https://i-blog.csdnimg.cn/direct/f9c34aad50264c26bfafbd1806a9f021.jpeg)
关于集成网络变压器的RJ45网口
集成网络变压器的RJ45网口是一种将网络变压器与RJ45接口集成在一起的网络连接解决方案。这种集成设计具有多项优势,使其在现代网络设备中得到广泛应用。 优势与特点 1. **空间节省**:集成设计减少了组件数量和连接线缆长度,有助于节省设备内…...
![](https://img-blog.csdnimg.cn/img_convert/ff6e41335d46ab7f85ca41ef83430482.png)
JMX 反序列化漏洞
前言 前段时间看到普元 EOS Platform 爆了这个洞,Apache James,Kafka-UI 都爆了这几个洞,所以决定系统来学习一下这个漏洞点。 JMX 基础 JMX 前置知识 JMX(Java Management Extensions,即 Java 管理扩展࿰…...
![](https://i-blog.csdnimg.cn/direct/53c2443105354142b4d9651d01be5994.png)
【Qt】常用控件 Q widget的enabled属性,geometry属性
Qt是一个实现图形化程序的程序。为了便于我们开发,Qt为我们提供了许多“控件”。我们需要熟悉并掌握这些控件的使用。 一.什么是控件 控件是构成⼀个图形化界⾯的基本要素. 示例一: 像上述⽰例一中的,按钮,列表视图,树形视图,单⾏输⼊框,多⾏输⼊框,滚动…...
![](https://i-blog.csdnimg.cn/direct/2f7377ebdefb40cc98ac2c9e946e669a.png)
Unity3d开发google chrome的dinosaur游戏
游戏效果 游戏中: 游戏中止: 一、制作参考 如何制作游戏?【15分钟】教会你制作Unity小恐龙游戏!新手15分钟内马上学会!_ unity教学 _ 制作游戏 _ 游戏开发_哔哩哔哩_bilibili 二、图片资源 https://download.csdn.…...
![](https://img-blog.csdnimg.cn/img_convert/652e9554aad58952d520ab4f798bd617.jpeg)
【数据分享】2013-2022年我国省市县三级的逐日SO2数据(excel\shp格式\免费获取)
空气质量数据是在我们日常研究中经常使用的数据!之前我们给大家分享了2000——2022年的省市县三级的逐日PM2.5数据和2013-2022年的省市县三级的逐日CO数据(均可查看之前的文章获悉详情)! 本次我们分享的是我国2013——2022年的省…...
昆明做网站建设的公司排名/30条新闻摘抄
欢迎关注”生信修炼手册”!ENCODE官方提供了chip_seq分析的pipeline以供参考,在peak calling前的预处理环节,流程示意如下可以看到其中包含了一个名为phantompeakqualtools的工具,这个工具可以进行cross-correlation分析,计算得到…...
![](/images/no-images.jpg)
做帖子的网站有哪些/百度网盘下载速度
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId4842 要注意题目中两点: 1.在踏入妖怪控制的区域那一刹那,先减行动力,然后才能杀妖怪 2.在妖怪控制区域行动力也会恢复 3.妖怪也许不在自己的控制区域 #include <cstdio> #include <cstring> #include…...
威海企业网站建设/如何做seo优化
10个超赞的ASP.NET jQuery插件,可帮助您完成AJAX请求,网格,json管理,面板等操作。 了解如何使用jQuery和Ajax集成ASP.NET。 在下面查看我们的特色教程。 1.在ASP.NET中将jQuery用于AJAX 本文将演示如何使用流行的JavaScript库&…...
![](/images/no-images.jpg)
哪些网站可以医生做兼职/站长工具 seo查询
算法的定义 算法,是为了解决某类问题而规定的一个有限长度的操作序列,是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。 也就是说,能够对一定规范的输…...
![](/images/no-images.jpg)
洪梅东莞网站建设/流程优化的七个步骤
/****************************************************************************************************函 数 名: BuildUnixSocket功能描述: 创建域套接字,将套接字与地址绑定输入参数: pSrc 域套接字文件路径返 回 值: -1, 失败; 非-1, 套接字描述符 …...
![](/images/no-images.jpg)
武汉网络科技有限公司排名/福州seo按天收费
话说使用Redis已经有好一段时间,趁有点时间,结合Guang.com 使用经验,总结一下Redis 在社会化电商网站的实际应用场景。文笔较差,各位看官,凑合着看下吧。 1. 各种计数,商品维度计数和用户维度计数 说起电商…...