蓝桥杯基础数据结构(java版)
引言
数据结构=数据+结构。所以数据结构是一个抽象的概念。其目的是为了更好的组织数据方便数据存储。下面我们来看一些简单的数据储存方式
输入和输出
这里先介绍java的输入和输出。简单引入,不过多详细介绍,等我单一写一篇的时候这里会挂上链接
简单的就是Scanner,使用方法如下:
Scanner scan = new Scanner(System.in);//引包记得用ctrl+shift+o,不引包会报错的
放我们获取键盘输入的时候,可查看一下用法:
int a = scan.nextInt();//从键盘获取一个数字
String b = scan.next();//从键盘获取一个字符串
//多个数字或者字符串了可以用空格分隔,也可以用换行符分割
输出就是:
System.out.println();//ln为换行输出,不加ln就可以不换行输出。有心情就自己去试
数组
数组是 我们常见的一个简单的数据结构,其引用方式为:
数据类型[] 数组名 = new 数据类型[size];//size为数组的大小,记得替换为数字
引入数组知识–下标:下标是为了查找数据的,因为我们储存过多的数据,所以利用下标来进行元素的访问的,第i个数的下标为i-1。
其次每个数组只能存放单一的元素,一个数据只能储存一种类型的元素。
实例:
int[] arr = new int[10];//创建一个有10个数字元素数组
String[] arr = new String[10];//创建一个有10个字符元素的数组
看到这里是不是觉得有点空,拿来看一道简单的题目吧;
- 从键盘获取10个数字并输出
import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner scan = new Scanner(System.in);int[] a = new int[10];//引入数组用来存储数据for (int i = 0;i<10;i++){a[i]= scan.nextInt();//利用for循环来多次读入数据}for (int i = 0; i < 10; i++) {System.out.println(a[i]);//for循环遍历数据输出}}
}
二维数组
二维数组就是一维数组的扩展,其实例化方式为
数据类型[][] 数组名 = new 数据类型[size][size];//size大小
实例:
int[][] arr = new int[10][10];
char[][] chars = new char[10][10];
说到了二维数组,那这里就不得不提到Arrays函数了。Arrays函数提供了一种转换数组的功能。下边看
实例
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);String b= scan.next();char[] chars =b.toCharArray();for (int i = 0; i < chars.length; i++) {System.out.print(chars[i] + " ");}}
}
这个操作也可以用到二维数组的读入中,大家可以自己尝试,不能再多说了,在多说就想把这就该改为付费内容了
相关例题
List
list集合其实是一个可变长度的数组。应用于我们存储的数据量未知的情况,也就是数组不知道怎么开空间的时候.
语法格式
List<Integer> list = new LinkedList();//Integer是int的封装类行,<>中就是代表集合的数据类型,不过这里要用封装类型
List<Integer> list1 = new ArrayList<>();//也可以用这个,具体一个是链表实现,一个是数组实现
相关操作
数组我们没有细说储存,细说牵扯的就比较多了。数组我们是开辟了一片空间通过下标来储存对应的元素,而链表是我们开辟了一个头节点,然后通过增/删的操作来加长/减短链表的大小。看图:
| 函数 | 作用 |
|---|---|
| add(value) | 添加元素 |
| remove(index) | 删除元素 |
| isEmpty | 判断集合是否为空 |
| contains(value) | 是否包含该元素 |
| size | 返回几个元素个数 |
| get(index) | 获取元素 |
相关例题
Set(集合)
上边我们说了list集合,set集合和list集合都是用来存储的,其差异在与set集合不会储存重复元素,也就是说其元素存在唯一性。
实现
Set<Integer> set = new HashSet();//依旧Integer代表的是封装数据类型
相关操作
| 函数 | 作用 |
|---|---|
| add(value) | 添加元素 |
| remove(index) | 删除元素 |
| contains(value) | 是否包含该元素 |
| size | 返回几个元素个数 |
| clear | 清空元素 |
相关例题
Map(键值)
Map集合是一种特殊的集合,其储存方式为key-value形式,就像字典那样每一个拼音下边都很多汉字
实现
Map<Integer,Integer> map = new HashMap<>();//Integer依旧为封装数据类型,可替换
相关操作
| 函数 | 作用 |
|---|---|
| put(key,value) | 添加元素 |
| get(key) | 获取与key对应的value值 |
| size() | 返回几个元素个数 |
| entrySet | 将map集合转化成为一个set集合,方便遍历 |
| getOrdefault(key,value) | 获取指定的key和value,没有则返回默认值 |
相关例题
Stack(栈)
栈是一个比较熟悉的词,下边简单解释,它是只允许在一段进行插入和删除的线性表,只能在一端进行插入和删除,就以为这最先进入的元素会最后出来,这也对应了栈的特点,先进后出。
相关操作
| 函数 | 作用 |
|---|---|
| push(value) | 添加元素 |
| pop() | 删除栈顶元素 |
| peek() | 返回栈顶元素,但不删除 |
| isEmpty | 判断是否为空 |
相关例题
Queue(队列)
队列与栈有所不同,栈是只能在一端插入和删除,而队列是一头出一头进,你也可以理解成为耳朵出右耳朵进。这也对应了其特点:先进先出
相关操作
| 函数 | 作用 |
|---|---|
| add(value) | 添加元素 |
| poll() | 删除队头元素 |
| peek() | 返回队头元素,但不删除 |
| isEmpty | 判断是否为空 |
相关例题
相关文章:
蓝桥杯基础数据结构(java版)
引言 数据结构数据结构。所以数据结构是一个抽象的概念。其目的是为了更好的组织数据方便数据存储。下面我们来看一些简单的数据储存方式 输入和输出 这里先介绍java的输入和输出。简单引入,不过多详细介绍,等我单一写一篇的时候这里会挂上链接 简单的…...
39 C++ 模版中的参数如果 是 vector,list等集合类型如何处理呢?
在前面写的例子中,模版参数一般都是 int,或者一个类Teacher,假设我们现在有个需求:模版的参数要是vector,list这种结合类型应该怎么写呢? //当模版中的类型是 vector ,list 等集合类型的时候的处…...
5.Pytorch模型单机多GPU训练原理与实现
文章目录 Pytorch的单机多GPU训练1)多GPU训练介绍2)pytorch中使用单机多GPU训练DistributedDataParallel(DDP)相关变量及含义a)初始化b)数据准备c)模型准备d)清理e)运行 3)使用DistributedDataParallel训练模型的一个简单实例 欢迎访问个人网络日志🌹🌹知…...
想成为一名C++开发工程师,需要具备哪些条件?
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保…...
Qat++,轻量级开源C++ Web框架
目录 一.简介 二.编译Oat 1.环境 2.编译/安装 三.试用 1.创建一个 CMake 项目 2.自定义客户端请求响应 3.将请求Router到服务器 4.用浏览器验证 一.简介 Oat是一个面向C的现代Web框架 官网地址:https://oatpp.io github地址:https://github.co…...
openssl3.2 - 官方demo学习 - digest - EVP_MD_demo.c
文章目录 openssl3.2 - 官方demo学习 - digest - EVP_MD_demo.c概述笔记END openssl3.2 - 官方demo学习 - digest - EVP_MD_demo.c 概述 使用 SHA3-512 对多个buffer连续进行摘要, 最后得到一个摘要值 笔记 /*! \file EVP_MD_demo.c \note openssl3.2 - 官方demo学习 - dig…...
uniapp 编译后文字乱码的解决方案
问题: 新建的页面中编写代码,其中数字和图片都可以正常显示,只有中文编译后展示乱码 页面展示也是乱码 解决方案: 打开HuilderX编辑器的【文件】- 【以指定编码重新打开】- 【选择UTF-8】 然后重新编译就可以啦~ 希望可以帮到你啊~...
iOS中利用KeyChain永久保存用户信息的方法示例
方法示例 一、新建一个LYKeychainTool类,导入系统Security框架 ,LYKeychainTool.h文件实现如下 // // LYKeychainTool.h // keyChainTest // // Created by Liyu on 2017/6/2. // Copyright © 2017年 liyu. All rights reserved. //#import <F…...
基于时域有限差分法的FDTD的计算电磁学算法(含Matlab代码)-YEE网格下的更新公式推导
基于时域有限差分法的FDTD的计算电磁学算法(含Matlab代码)-YEE网格下的更新公式推导 参考书籍:The finite-difference time-domain method for electromagnetics with MATLAB simulations(国内翻译版本:MATLAB模拟的电…...
win10使用debug,汇编初学
DOSBox挂载Debug.exe 双击 DOSBox Options.bat 打开配置 或者执行cmd DOSBox.exe -editconf notepad.exe -editconf %SystemRoot%\system32\notepad.exe -editconf %WINDIR%\notepad.exe最后一行增加 mount [盘符] [挂载的工作目录(debug.exe文件夹位置ÿ…...
怎么投稿各大媒体网站?
怎么投稿各大媒体网站?这是很多写作者及自媒体从业者经常面临的问题。在信息爆炸的时代,如何将自己的文章推送到广大读者面前,成为了一个不可避免的挑战。本文将为大家介绍一种简单有效的投稿方法——媒介库发稿平台发稿,帮助大家…...
chatgpt免费使用的网站
前言 如果您认为本文对你有帮助,希望可以点赞收藏!感谢您的支持 下面我为你推荐我自己在用的gpt类工具,帮你在工作学习生活上解决一些大小问题 🎉智能GPT 地址: https://meet.adminjs.net 在他的详情中有详细的使用…...
音频编辑软件:Studio One 6 中文
Studio One 6是一款功能强大的数字音乐制作软件,为用户提供一站式音乐制作解决方案。它具有直观的界面和强大的音频录制、编辑、混音和制作功能,支持虚拟乐器、效果器和第三方插件,可帮助用户实现高质量的音乐创作和制作。同时,St…...
MySQL语句|使用UNION和UNION ALL合并两个或多个 SELECT 语句的结果集
文章目录 举个通用的例子举个实际的例子 在MySQL中, UNION 和 UNION ALL 是用于合并两个或多个 SELECT 语句的结果集的操作符。 UNION 会去除结果集中的重复行,返回唯一的行,而 UNION ALL 会返回所有的行,包括重复行。 举个通…...
UNRAID 优盘制作
使用方法和开心方法: 如果重启之后显示器有信号但是黑屏无法正常引导系统,此为九代以后主板快速开机(快速引导)UNRAID并不支持快速引导所以会直接卡黑屏。所以发现这种情况的时候请进BIOS关闭和开机快速引导或和快有关系的任何开…...
二、Java中SpringBoot组件集成接入【MySQL和MybatisPlus】
二、Java中SpringBoot组件集成接入【MySQL和MybatisPlus】 1.MySQL和MybatisPlus简介2.maven依赖3.配置1.在application.yaml配置中加入mysql配置2.新增Mybatis-Plus配置类 4.参考文章 1.MySQL和MybatisPlus简介 MySQL是一种开源的关系型数据库管理系统,被广泛应用…...
银行测试--------转账
转账 付款账号测试 付款账号是借记卡,也可以是活期存折信用卡,定期存折不能转出。一般在账号选择的时候进行屏蔽转出账户在销户,冻结,挂失等异常状态,不能进行转账付款账号金额不够 转账金额测试 0.01~…...
阿里云最新优惠券领取方法及优惠活动汇总
随着互联网的飞速发展,云服务已经成为企业和个人使用的重要基础设施。阿里云作为全球领先的云服务提供商,一直致力于为用户提供优质的云服务。为了回馈用户,阿里云会定期推出各种优惠券和优惠活动,本文将为大家介绍阿里云最新优惠…...
动态分配内存的风险
1. 悬挂指针问题 在指针释放之后要将指针置空 delete ptr; ptr nullptr;2.内存碎片问题 频繁的申请与释放小块内存会造成大量的内存碎片。 3.内存申请与释放问题 C与C的内存申请与释放最好不要混用。 4.复制内存 基本语法 void* memcpy(void* _Dst, void* _Src, size_…...
多行SQL转成单行SQL
如下图所示 将以上多行SQL转成单行SQL 正则表达式如下 (?s)$[^a-zA-Z()0-9]*结果如下 灵活使用,也未必只能使用Sublime Text...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...
Modbus RTU与Modbus TCP详解指南
目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...
Qt的学习(一)
1.什么是Qt Qt特指用来进行桌面应用开发(电脑上写的程序)涉及到的一套技术Qt无法开发网页前端,也不能开发移动应用。 客户端开发的重要任务:编写和用户交互的界面。一般来说和用户交互的界面,有两种典型风格&…...
用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章
用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章 摘要: 操作系统内核的安全性、稳定性至关重要。传统 Linux 内核模块开发长期依赖于 C 语言,受限于 C 语言本身的内存安全和并发安全问题,开发复杂模块极易引入难以…...
GeoServer发布PostgreSQL图层后WFS查询无主键字段
在使用 GeoServer(版本 2.22.2) 发布 PostgreSQL(PostGIS)中的表为地图服务时,常常会遇到一个小问题: WFS 查询中,主键字段(如 id)莫名其妙地消失了! 即使你在…...
Spring事务传播机制有哪些?
导语: Spring事务传播机制是后端面试中的必考知识点,特别容易出现在“项目细节挖掘”阶段。面试官通过它来判断你是否真正理解事务控制的本质与异常传播机制。本文将从实战与源码角度出发,全面剖析Spring事务传播机制,帮助你答得有…...
