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

蓝桥杯基础数据结构(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个字符元素的数组

看到这里是不是觉得有点空,拿来看一道简单的题目吧;

  1. 从键盘获取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的输入和输出。简单引入&#xff0c;不过多详细介绍&#xff0c;等我单一写一篇的时候这里会挂上链接 简单的…...

39 C++ 模版中的参数如果 是 vector,list等集合类型如何处理呢?

在前面写的例子中&#xff0c;模版参数一般都是 int&#xff0c;或者一个类Teacher&#xff0c;假设我们现在有个需求&#xff1a;模版的参数要是vector&#xff0c;list这种结合类型应该怎么写呢&#xff1f; //当模版中的类型是 vector &#xff0c;list 等集合类型的时候的处…...

5.Pytorch模型单机多GPU训练原理与实现

文章目录 Pytorch的单机多GPU训练1)多GPU训练介绍2)pytorch中使用单机多GPU训练DistributedDataParallel(DDP)相关变量及含义a)初始化b)数据准备c)模型准备d)清理e)运行 3)使用DistributedDataParallel训练模型的一个简单实例 欢迎访问个人网络日志&#x1f339;&#x1f339;知…...

想成为一名C++开发工程师,需要具备哪些条件?

C语言是一门面向过程的、抽象化的通用程序设计语言&#xff0c;广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能&#xff0c;但仍然保…...

Qat++,轻量级开源C++ Web框架

目录 一.简介 二.编译Oat 1.环境 2.编译/安装 三.试用 1.创建一个 CMake 项目 2.自定义客户端请求响应 3.将请求Router到服务器 4.用浏览器验证 一.简介 Oat是一个面向C的现代Web框架 官网地址&#xff1a;https://oatpp.io github地址&#xff1a;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 编译后文字乱码的解决方案

问题: 新建的页面中编写代码&#xff0c;其中数字和图片都可以正常显示&#xff0c;只有中文编译后展示乱码 页面展示也是乱码 解决方案: 打开HuilderX编辑器的【文件】- 【以指定编码重新打开】- 【选择UTF-8】 然后重新编译就可以啦~ 希望可以帮到你啊~...

iOS中利用KeyChain永久保存用户信息的方法示例

方法示例 一、新建一个LYKeychainTool类&#xff0c;导入系统Security框架 &#xff0c;LYKeychainTool.h文件实现如下 // // LYKeychainTool.h // keyChainTest // // Created by Liyu on 2017/6/2. // Copyright © 2017年 liyu. All rights reserved. //#import <F…...

基于时域有限差分法的FDTD的计算电磁学算法(含Matlab代码)-YEE网格下的更新公式推导

基于时域有限差分法的FDTD的计算电磁学算法&#xff08;含Matlab代码&#xff09;-YEE网格下的更新公式推导 参考书籍&#xff1a;The finite-difference time-domain method for electromagnetics with MATLAB simulations&#xff08;国内翻译版本&#xff1a;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 [盘符] [挂载的工作目录&#xff08;debug.exe文件夹位置&#xff…...

怎么投稿各大媒体网站?

怎么投稿各大媒体网站&#xff1f;这是很多写作者及自媒体从业者经常面临的问题。在信息爆炸的时代&#xff0c;如何将自己的文章推送到广大读者面前&#xff0c;成为了一个不可避免的挑战。本文将为大家介绍一种简单有效的投稿方法——媒介库发稿平台发稿&#xff0c;帮助大家…...

chatgpt免费使用的网站

前言 如果您认为本文对你有帮助&#xff0c;希望可以点赞收藏&#xff01;感谢您的支持 下面我为你推荐我自己在用的gpt类工具&#xff0c;帮你在工作学习生活上解决一些大小问题 &#x1f389;智能GPT 地址&#xff1a; https://meet.adminjs.net 在他的详情中有详细的使用…...

音频编辑软件:Studio One 6 中文

Studio One 6是一款功能强大的数字音乐制作软件&#xff0c;为用户提供一站式音乐制作解决方案。它具有直观的界面和强大的音频录制、编辑、混音和制作功能&#xff0c;支持虚拟乐器、效果器和第三方插件&#xff0c;可帮助用户实现高质量的音乐创作和制作。同时&#xff0c;St…...

MySQL语句|使用UNION和UNION ALL合并两个或多个 SELECT 语句的结果集

文章目录 举个通用的例子举个实际的例子 在MySQL中&#xff0c; UNION 和 UNION ALL 是用于合并两个或多个 SELECT 语句的结果集的操作符。 UNION 会去除结果集中的重复行&#xff0c;返回唯一的行&#xff0c;而 UNION ALL 会返回所有的行&#xff0c;包括重复行。 举个通…...

UNRAID 优盘制作

使用方法和开心方法&#xff1a; 如果重启之后显示器有信号但是黑屏无法正常引导系统&#xff0c;此为九代以后主板快速开机&#xff08;快速引导&#xff09;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是一种开源的关系型数据库管理系统&#xff0c;被广泛应用…...

银行测试--------转账

转账 付款账号测试 付款账号是借记卡&#xff0c;也可以是活期存折信用卡&#xff0c;定期存折不能转出。一般在账号选择的时候进行屏蔽转出账户在销户&#xff0c;冻结&#xff0c;挂失等异常状态&#xff0c;不能进行转账付款账号金额不够 转账金额测试 0.01&#xff5e;…...

阿里云最新优惠券领取方法及优惠活动汇总

随着互联网的飞速发展&#xff0c;云服务已经成为企业和个人使用的重要基础设施。阿里云作为全球领先的云服务提供商&#xff0c;一直致力于为用户提供优质的云服务。为了回馈用户&#xff0c;阿里云会定期推出各种优惠券和优惠活动&#xff0c;本文将为大家介绍阿里云最新优惠…...

动态分配内存的风险

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...

释放创意:Mi-Create让智能表盘设计触手可及

释放创意&#xff1a;Mi-Create让智能表盘设计触手可及 【免费下载链接】Mi-Create Unofficial watchface creator for Xiaomi wearables ~2021 and above 项目地址: https://gitcode.com/gh_mirrors/mi/Mi-Create 问题发现&#xff1a;智能表盘设计的三重困境 在智能穿…...

图像处理和深度学习笔记[特殊字符](一)

AI生命周期&#xff1a;数据准备 → 模型训练 → 模型转换 → 部署 → 监控↑ 算法工程师关注 ↑ ↓ 你将专注于此 ↓机器学习开发流程数据收集数据预处理特征提取 数据预处理和 特征提取&#xff08;其实就是数据清洗和转换&#xff09; 比较耗时耗力清洗和特征工程模型构…...

GitHub协作开发:AnythingtoRealCharacters2511动漫转真人开源项目实践

GitHub协作开发&#xff1a;AnythingtoRealCharacters2511动漫转真人开源项目实践 1. 项目介绍与准备 AnythingtoRealCharacters2511是一个专门将动漫角色转换为真实人像的开源项目&#xff0c;基于先进的AI图像生成技术。这个项目在GitHub上开源&#xff0c;让开发者可以共同…...

LVGL V8项目实战:手把手教你用CLion配置CMake,集成Gui Guider生成的UI文件(含避坑指南)

LVGL V8项目实战&#xff1a;CLion与CMake深度集成Gui Guider UI文件的完整指南 当你在嵌入式GUI开发中频繁往返于设计工具与代码编辑器之间时&#xff0c;是否经历过这样的困境&#xff1a;在Gui Guider中精心设计的界面&#xff0c;移植到LVGL项目后却遭遇编译错误、资源路径…...

OneAPI安全增强指南:令牌过期策略、兑换码批量发放、用户邀请奖励机制详解

OneAPI安全增强指南&#xff1a;令牌过期策略、兑换码批量发放、用户邀请奖励机制详解 1. 引言&#xff1a;为什么你需要一个统一的大模型网关&#xff1f; 如果你正在使用或者管理多个大模型服务&#xff0c;比如 OpenAI 的 ChatGPT、百度的文心一言、阿里的通义千问&#x…...

M2LOrder模型在AI编程助手场景的应用:代码注释情感分析

M2LOrder模型在AI编程助手场景的应用&#xff1a;代码注释情感分析 1. 引言 你有没有在代码注释里写过“这里有个天坑&#xff0c;后面的人小心”或者“TODO: 这个逻辑太绕了&#xff0c;得重构”&#xff1f;这些看似随手的吐槽&#xff0c;其实藏着开发者最真实的情绪。代码…...

LFM2.5-1.2B-Thinking-GGUF开源生态初探:与Ollama等工具的对比与集成

LFM2.5-1.2B-Thinking-GGUF开源生态初探&#xff1a;与Ollama等工具的对比与集成 1. 开源大模型本地部署生态概览 近年来&#xff0c;开源大模型本地部署工具呈现百花齐放的局面。从早期的单一模型加载器&#xff0c;发展到如今功能丰富的模型管理生态系统&#xff0c;开发者…...

从NDVI到地表温度:用ENVI Band Math一次性搞定植被与热环境分析

ENVI波段运算实战&#xff1a;NDVI与地表温度的高效批量处理技巧 遥感影像分析中&#xff0c;植被指数和地表温度是最基础却又最关键的指标。传统操作流程往往需要反复切换不同工具模块&#xff0c;既耗时又容易出错。而ENVI的Band Math功能就像一把瑞士军刀&#xff0c;能将这…...

Qwen3-Reranker-0.6B一文详解:轻量0.6B参数如何实现SOTA级重排序性能

Qwen3-Reranker-0.6B一文详解&#xff1a;轻量0.6B参数如何实现SOTA级重排序性能 1. 引言&#xff1a;为什么你需要关注这个0.6B的小模型&#xff1f; 如果你用过搜索引擎&#xff0c;肯定有过这样的体验&#xff1a;输入一个问题&#xff0c;搜出来一堆结果&#xff0c;但真…...

比特币钱包密码与助记词恢复工具:从入门到精通

比特币钱包密码与助记词恢复工具&#xff1a;从入门到精通 【免费下载链接】btcrecover An open source Bitcoin wallet password and seed recovery tool designed for the case where you already know most of your password/seed, but need assistance in trying different…...