【数据结构】 初识集合框架

news2024/11/24 0:26:14

文章目录

  • 什么是集合框架
    • 集合框架的重要性
      • 开发中的使用
      • 笔试及面试题
  • 数据结构是什么
    • 容器背后对应的数据结构
    • 相关java知识
  • 什么是算法
  • 如何学好数据结构以及算法
    • 多画图多思考
    • 死磕代码
    • 多总结
    • 多刷题
  • 总结

什么是集合框架

这里博主将简单介绍一下集合框架,想要详细了解的可以点击下方链接进行查看
java集合官方教程
Java 集合框架Java Collection Framework ,又被称为容器 container ,是定义在 java.util 包下的一组接口 interfaces和其实现类 classes

其主要表现为将多个元素 element 置于一个单元中,用于对这些元素进行快速、便捷的存储 store 、检索 retrieve 、管理 manipulate ,即平时我们俗称的增删查改 CRUD

举个例子,例如,一副扑克牌(一组牌的集合)、一个邮箱(一组邮件的集合)、一个通讯录(一组姓名和电话的映射关系)等等

接下来我们来看一下我们所需要涉及及学到的一些类与接口的总览
在这里插入图片描述
接下来的很长一段时间,如果有感兴趣的小伙伴可以跟着博主一起进行学习
接下来我们一起来了解一下集合框架的重要性

集合框架的重要性

开发中的使用

首先我们先来看一下其在开发中的使用

  • 使用成熟的集合框架,有助于我们便捷、快速的写出高效、稳定的代码
  • 学习背后的数据结构知识,有助于我们理解各个集合的优缺点及使用场景

笔试及面试题

集合框架在笔试以及面试题中也占有很大的分量
腾讯-Java后台开发面试经典题

  • HashMap 了解不,介绍一下,如果一个对象为 key 时,hashCode 和 equals 方法的用法要注意什么?
  • HashSet 和 HashMap 的区别是什么?
  • HashMap 是线程安全的么?那需要线程安全需要用到什么?

阿里巴巴-Java后台开发面试经典题

  • ArrayList 和 LinkedList 的区别是什么?
  • 有了解过 HashMap 的具体实现么?
  • HashMap 和 ConcurrentHashMap 哪个效率更高?

今日头条-Java后台开发面试经典题

  • 编程题:判断一个链表是否是一个回文链表。
  • Redis 的 zset 类型对应到 java 语言中大致是什么类型?
  • hashCode 主要是用来做什么用的?

这里由于博主不会对这些面试题进行讲解,等待小伙伴们一起跟着博主学完了相应的知识,博主会对其进行讲解,这里只是为了说明集合框架的重要性

博主在前面提到了一个名词“数据结构”,那什么是数据结构呢?

数据结构是什么

数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合

容器背后对应的数据结构

在Java当中,如果有一个类专门用来存放其它类的对象,这个类就叫做容器,或者就叫做集合,集合就是将若干性质相同或相近的类对象组合在一起而形成的一个整体。

该阶段,我们主要学习以下容器,每个容器其实都是对某种特定数据结构的封装,大概了解一下,后序会给大家详细讲解并模拟实现

  1. Collection:是一个接口,包含了大部分容器常用的一些方法
  2. List:是一个接口,规范了ArrayList 和 LinkedList中要实现的方法
    ArrayList:实现了List接口,底层为动态类型顺序表
    LinkedList:实现了List接口,底层为双向链表
  3. Stack:底层是栈,栈是一种特殊的顺序表
  4. Queue:底层是队列,队列是一种特殊的顺序表
  5. Deque:是一个接口
  6. Set:集合,是一个接口,里面放置的是K模型
    HashSet:底层为哈希桶,查询的时间复杂度为O(1)
    TreeSet:底层为红黑树,查询的时间复杂度为O( ),关于key有序的
  7. Map:映射,里面存储的是K-V模型的键值对
    HashMap:底层为哈希桶,查询时间复杂度为O(1)
    TreeMap:底层为红黑树,查询的时间复杂度为O( ),关于key

上面涉及的许多陌生的专业名词,后续博主会进行详细的介绍

因为这里博主是学习java的,所以这里会涉及一些java方面的知识

相关java知识

  • 泛型 Generic
  • 自动装箱 autobox 和自动拆箱 autounbox
  • Object 的 equals 方法
  • Comparable 和 Comparator 接口

注意:数据结构学的是思想与逻辑,是一门单独的学科,并不会说是每一门语言都有其对应得数据结构。只是每一门语言得是实现过程不同,思想与逻辑是相同得

什么是算法

算法似乎与数据结构息息相关,其实算法也可以当作一门独立的学科,比如博主以前讲的贪心算法,就是算法的一种,也传输的是一种思想与解决问题的逻辑

算法(Algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果

如何学好数据结构以及算法

多画图多思考

在这里插入图片描述

死磕代码

在这里插入图片描述

多总结

自己进行总结,或者多来看看博主的博客
在这里插入图片描述

多刷题

这里博主向大家推荐两个网站用于刷题
牛客网
Leetcode
关于网站的使用,有不会和不清楚的地方可以私信博主

总结

关于《 【数据结构】初始集合框架》就讲解到这儿,“数据结构”系列专栏的内容也就从此刻开始了,感谢大家的支持,欢迎各位留言交流以及批评指正,如果文章对您有帮助或者觉得作者写的还不错可以点一下关注,点赞,收藏支持一下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/877047.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为什么需要知识图谱,如何构建它?

从关系数据库迁移到图形数据库的指南 跟随 发表于 迈向数据科学 7 分钟阅读 4天前 154 4 一、说明 TLDR:知识图谱在图数据库中组织事件、人员、资源和文档,以进行高级分析。本文将解释知识图谱的用途,并向您展示如何将关系数据模型转换为图…

【Sklearn】基于最中心分类器算法的数据分类预测(Excel可直接替换数据)

【Sklearn】基于最中心分类器算法的数据分类预测(Excel可直接替换数据) 1.模型原理2.模型参数3.文件结构4.Excel数据5.下载地址6.完整代码7.运行结果 1.模型原理 最近中心分类器(Nearest Centroid Classifier)也被称为近似最近邻…

SolidUI 一句话生成任何图形,v0.2.0功能介绍

文章目录 背景聊天窗口提示词 聊天窗口生成输入数据格式柱形图曲面图散点图螺旋线饼图兔子建模地图 设计页面页面布局预览 SolidUI社区的未来规划如何成为贡献者加群 背景 随着文本生成图像的语言模型兴起,SolidUI想帮人们快速构建可视化工具,可视化内容…

BFS(广度优先搜索) 的相关介绍解析

文章目录 DFS 和 BFSBFS 的应用一:层序遍历BFS 的应用二:最短路径最短路径例题讲解 DFS(深度优先搜索)和 BFS(广度优先搜索)就像孪生兄弟,提到一个总是想起另一个。然而在实际使用中&#xff0c…

Keburnetes 存储卷 volumes

K8S 的 存储卷 volumes emptyDir 可实现Pod中的容器之间共享目录数据,但emptyDir存储卷没有持久化数据的能力,存储卷会随着Pod生命周期结束而一起删除 (一个pod中创建了docker1 docker2两个容器,他们都挂载这个emptyDir&#xff0…

第1期:《实体新零售--瑞幸咖啡》私域爆款案列拆解

朋友们,大家好,阿车写私域相关的内容也有一段时间了,前前后后也接触了不少“私域玩法” “爆款案列”,只是一直不知道怎么分享给大家,前段时间这个分享的想法愈发激烈,所以抽时间好好梳理了一番&#xff0c…

如何初始化Git仓库

如何将目录初始化为Git仓库 一级目录二级目录三级目录 一、准备1、安装 gh2、登录 二、初始化 Git 仓库 一级目录 二级目录 三级目录 一、准备 ​ 在这里,我们需要借助一个非常好用的工具,大家也可以参照官方文档进行阅读,下面介绍常用的…

Java Review - 关于代理的二三事儿

文章目录 Pre概述静态代理概述Code 动态代理概述实现方式一 - JDK代理或接口代理概述Code 实现方式二 - CGLib 子类代理 (Code Generation Library)概述pom依赖Code Pre Java-JDK动态代理 Java-CGLib动态代理 概述 代理模式是一种结构型设计模式,其目的是为其他对…

Windows安装MinGW和简单的使用教程

Windows安装MinGW和简单的使用教程 什么是MinGW? MinGW,是Minimalist GNU for Windows的缩写。它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你在GNU/Linux和Windows平台生成本地的Windows程序而不需要…

在P4(Perforce)中使用TortoiseMerge来比较合并

一直习惯于svn的比较合并工具,会觉得p4自带的反人性。还好p4可以在设置里替换成外部的比较合并工具。方法见下图: 1. 比较 2. 合并 注意,如果合并设置有问题(某些P4版本),则需要通过一个bat文件来做中转&a…

聊聊看React和Vue的区别

Vue 更适合小项目,React 更适合大公司大项目; Vue 的学习成本较低,很容易上手,但项目质量不能保证...... 真的是这样吗?借助本篇文章,我们来从一些方面的比较来客观的去看这个问题。 论文档的丰富性 从两个…

Linux fork()||fork()问题

以下代码会输出几个"A"? int main() { fork() || fork();printf("A\n");} 代码分析: //父进程fork() || fork();printf("A\n");这里父进程中的第一个fork先执行,产生一个子进程: //子进程…

Electron-builder打包和自动更新

前言 文本主要讲述如何为 electron 打包出来软件配置安装引导和结合 github 的 release 配置自动更新。 electron-builder 是将 Electron 工程打包成相应平台的软件的工具,我的工程是使用 electron-vite 构建的,其默认集成了 electron-builder &#x…

K8S之存储卷

K8S之存储卷 一、emptyDir emptyDir:可实现Pod中的容器之间共享目录数据,但emptyDir存储卷没有持久化数据的能力,存储卷会随着Pod生命周期结束而一起删除二、hostPath hostPath:将Node节点上的目录/文件挂载到Pod容器的指定目录…

【JavaWeb】实训的长篇笔记(下)

文章目录 八、功能实现1、注册功能2、登录功能3、问题说明4、首页数据显示5、后台管理 八、功能实现 1、注册功能 jsp:能够在页面中把数据动态化,jsp和html在元素标签上是无区别的,区别是html中写上java代码就成了jsp文件。filename.jsp。 需…

Threejs学习01——坐标轴展示立方体并实现来回移动

在三维坐标轴上展示立方体并实现来回移动 这是一个非常简单基础的threejs的学习应用!创建应用先创建一个场景Scene,然后创建爱你一个透视相机PerspectiveCamera,然后创建立方体BoxGeometry,立方体添加一些材质,将立方…

SPSS多元线性回归操作入门实例

做农情反演的时候往往需要用到SPSS多元线性回归,这里提供一个操作案例 (一)SPSS安装 关于SPSS安装,请参考本人博客:保姆级SPSS图文安装教程_追忆苔上雪的博客-CSDN博客 (二)SPSS多元线性回归实例 在文章ArcGIS入门操作手册_追忆苔上雪的博…

Windows下升级jdk1.8小版本

1.首先下载要升级jdk最新版本,下载地址:Java Downloads | Oracle 中国 2.下载完毕之后,直接双击下载完毕后的文件,进行安装。 3.安装完毕后,调整环境变量至新安装的jdk位置 4.此时,idea启动项目有可能会出…

CCF考试:201703-1 分蛋糕(java代码)

1、【问题描述】 小明今天生日,他有n块蛋糕要分给朋友们吃,这n块蛋糕(编号为1到n)的重量分别为a1, a2, …, an。小明想分给每个朋友至少重量为k的蛋糕。小明的朋友们已经排好队准备领蛋糕,对于每个朋友,小明…

2023年新学期12306高铁火车学生票如何在线核验享受优惠?

2023学年优惠资质核验已开始,完成学生优惠资质核验后,您可以在线购买2022年10月1日至2023年9月30日的学生优惠票。(注:非该时间段需要重新核验,可享受学生优惠票); 『扩展阅读』 1、美团外卖红…