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

Java实现数据结构---数组

文章目录

  • 概念
  • 存储原理
  • 数组的操作
  • 完整代码

概念

数组是(Array)是有限个相同类型的变量所组成的有序集合,数组中的每一个变量为称为元素。数组是最简单、最常用的数据结构。
在这里插入图片描述
数组下标从开始。

存储原理

数组用一组连续的内存空间来存储一组具有相同类型的数据。
在这里插入图片描述
注: 灰色格子–被使用的内存; 橙色格子–空闲的内存; 红色格子–数组暂用的内存。

数组的操作

  1. 数组演示类:
package com.xxliao.datastructure.linerar_list.array;import javax.sql.XADataSource;
/**1. @author xxliao2. @description: 数据结构 - 线性表 - array3.  数组是(Array)是 有限个相同类型 的变量所组成的 有序 集合,数组中的每一个变量为称为元素。数组是最简单、最常用的数据结构。数组是用一组 连续的内存空间 来存储一组具有 相同类型 的数据。4.  5. @date 2024/5/27 22:50*/
public class Array {// 定义数组int[] array = new int[10];// 定义计数器int count = 0;// 初始化,填充0-4空间的值public Array() {array[0] = 3;array[1] = 1;array[2] = 2;array[3] = 5;array[4] = 4;count = 5;}/*** @description  根据索引获取元组的值* @author  xxliao* @date  2024/5/28 11:35*/public int get(int index) {return array[index];}/*** @description  修改元素index: 索引value: 值* @author  xxliao* @date  2024/5/28 11:36*/public void update(int index, int value) {array[index] = value;}/*** @description  从数组尾部添加* @author  xxliao* @date  2024/5/28 11:38*/public void insertTail(int value) {if(count >= array.length) { //判断是否扩容resize();}array[count++] = value;}/*** @description  从中间添加* @author  xxliao* @date  2024/5/28 11:42*/public void insertMiddle(int index, int value) {if(count >= array.length) { // 判断是否扩容resize();}for (int i = array.length-1; i >= index; i--) {// 从尾部开始遍历,看是否有值,有值就移动。if (array[i] != 0) {array[i+1]=array[i];}}array[index]=value;count++;}/*** @description  扩容,增加一倍空间* @author  xxliao* @date  2024/5/28 11:45*/public void resize(){int[] numsNew=new int[array.length*2];System.arraycopy(array,0,numsNew,0,array.length);array=numsNew;}/*** @description  删除元素,并移动* @author  xxliao* @date  2024/5/28 11:47*/public void deleteMiddle(int index){for(int i=index+1;i<array.length;i++){array[i-1] = array[i];}count--;}/*** @description  遍历数组* @author  xxliao* @date  2024/5/28 11:48*/public void display() {for (int value : array) {System.out.print(value+" ");}System.out.println("=====================");}/*** @description  遍历数组* @author  xxliao* @date  2024/5/28 11:48*/public void display2() {for (int i = array.length - 1; i >= 0; i--) {System.out.print(array[i]+" ");}System.out.println("=====================");}
}
  1. 测试类
package com.xxliao.datastructure.linerar_list.array;/**1. @author xxliao2. @description: array test client3. @date 2024/5/28 11:33*/
public class TestClient {public static void main(String[] args) {Array array = new Array();array.display();// 测试尾部添加// for (int i = 0; i < 10; i++) {//   array.insertTail(i);// }// 测试中间添加array.insertMiddle(1,1000);// 测试删除//array.deleteMiddle(3);array.display();}
}
  1. 输出结构

数组尾部添加:
在这里插入图片描述

数组中间添加:
在这里插入图片描述
数组删除:
在这里插入图片描述

完整代码

https://github.com/xxliao100/datastructure_algorithms.git

相关文章:

Java实现数据结构---数组

文章目录 概念存储原理数组的操作完整代码 概念 数组是&#xff08;Array&#xff09;是有限个相同类型的变量所组成的有序集合&#xff0c;数组中的每一个变量为称为元素。数组是最简单、最常用的数据结构。 数组下标从零开始。 存储原理 数组用一组连续的内存空间来存储一…...

java解析excel文件,返回json

我这里用的是springboot项目&#xff0c;配合Maven使用的。首先需要引入依赖&#xff1a; <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version></dependency><dependency…...

uniapp 添加字体ttf

效果图如下 一、逻辑概述 在uniapp中使用字体&#xff0c;一共分成两种情况&#xff0c;一种是普通vue页面&#xff0c;一种是nvue页面引入字体。。 1.vue页面引入字体需要如下步骤 1. 先选择下载一种字体&#xff1a;字体格式一般为 ttf后缀名 黄凯桦律师手写体免费下载和在线…...

Linux入门攻坚——24、BIND编译安装、Telnet和OpenSSH

BIND编译安装 对于没有rpm包&#xff0c;需要源代码编译安装。 1、下载源代码&#xff1a;bind-9.12.2-P1.tar.gz&#xff0c;解压&#xff1a;tar -xf bind-9.12.2-P1.tar.gz 2、完善环境&#xff1a; 1&#xff09;增加用户组named&#xff1a;groupadd -g 53 named 2&…...

1.5.3 基于Java配置方式使用Spring MVC

本实战教程主要介绍了如何使用Java配置方式来使用Spring MVC框架。相较于XML配置方式&#xff0c;Java配置方式提供了一种更为简洁和灵活的配置方法。 项目创建与配置 创建一个Jakarta EE项目&#xff0c;并设置项目名称和位置。选择Jakarta EE 10版本&#xff0c;不添加依赖&a…...

Artifactory清理二进制文件丢失的制品

一、摘要 当制品上传到 Artifactory 时&#xff0c;Artifactory 会在数据库中记录制品的相关元数据信息&#xff0c;包括文件路径、大小、校验和&#xff08;如 MD5、SHA1&#xff09;、上传时间、索引、依赖等。实际的制品二进制文件会存储在指定的存储后端&#xff0c;具体的…...

C#中的数组探索

在C#编程语言中&#xff0c;数组是一种基本的数据结构&#xff0c;用于存储固定大小的同类型元素序列。本文将深入探讨C#数组的各个方面&#xff0c;包括定义、赋值、范围操作、切片、多维数组&#xff08;矩形与锯齿形&#xff09;、简化初始化表达式以及边界检查。 数组定义…...

身份认证与口令攻击

身份认证与口令攻击 身份认证身份认证的五种方式口令认证静态口令动态口令(一次性口令)动态口令分类 密码学认证一次性口令认证S/KEY协议改进的S/KEY协议 其于共享密钥的认证 口令行为规律和口令猜测口令规律口令猜测 口令破解操作系统口令破解Windows密码存储机制Windows密码破…...

卷积网络迁移学习:实现思想与TensorFlow实践

摘要&#xff1a;迁移学习是一种利用已有知识来改善新任务学习性能的方法。 在深度学习中&#xff0c;迁移学习通过迁移卷积网络&#xff08;CNN&#xff09;的预训练权重&#xff0c;实现了在新领域或任务上的高效学习。 下面我将详细介绍迁移学习的概念、实现思想&#xff0c…...

Ansible04-Ansible Vars变量详解

目录 写在前面6 Ansible Vars 变量6.1 playbook中的变量6.1.1 playbook中定义变量的格式6.1.2 举例6.1.3 小tip 6.2 共有变量6.2.1 变量文件6.2.1.1 变量文件编写6.2.1.2 playbook编写6.2.1.3 运行测试 6.2.2 根据主机组使用变量6.2.2.1 groups_vars编写6.2.2.2 playbook编写6.…...

Flutter 中的 SliverCrossAxisGroup 小部件:全面指南

Flutter 中的 SliverCrossAxisGroup 小部件&#xff1a;全面指南 Flutter 是一个功能丰富的 UI 开发框架&#xff0c;它允许开发者使用 Dart 语言来构建高性能、美观的移动、Web 和桌面应用。在 Flutter 的丰富组件库中&#xff0c;SliverCrossAxisGroup 是一个较少被使用的组…...

开源还是闭源这是一个问题

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…...

数据结构与算法笔记:基础篇 - 栈:如何实现浏览器的前进和后退功能?

概述 浏览器的前进、后退功能&#xff0c;你肯定很熟悉吧&#xff1f; 当依次访问完一串页面 a-b-c 之后&#xff0c;点击浏览器的后退按钮&#xff0c;就可以查看之前浏览过的页面 b 和 a。当后退到页面 a&#xff0c;点击前进按钮&#xff0c;就可以重新查看页面 b 和 c。但…...

【AIGC】大型语言模型在人工智能规划领域模型生成中的探索

大型语言模型在人工智能规划领域模型生成中的新应用 一、引言二、LLM在规划领域模型生成中的潜力三、实证分析&#xff1a;LLM在规划领域模型生成中的表现四、代码实例&#xff1a;LLM在规划领域模型生成中的应用五、结论与展望 一、引言 随着人工智能技术的迅猛发展&#xff0…...

从零开始学习Slam-旋转矩阵旋转向量四元组(二)

本文参考&#xff1a;计算机视觉life 仅作笔记用 书接上回&#xff0c;上回不清不楚的介绍了旋转矩阵&旋转向量和四元组 现在回顾一下重点&#xff1a; 本着绕谁谁不变的变则 假设绕z轴旋转θ&#xff0c;旋转矩阵为&#xff1a; 再回顾一下旋转向量的表示以及这个基本记不…...

基于Spring Security添加流控

基于Spring Security添加流控的过程&#xff1a; 步骤1: 添加依赖 确保项目中包含了Spring Security和Sentinel-Core的相关依赖。在Maven项目中&#xff0c;可以在pom.xml中添加如下依赖&#xff1a; <!-- Spring Security --> <dependency><groupId>org.…...

Python | Leetcode Python题解之第119题杨辉三角II

题目&#xff1a; 题解&#xff1a; class Solution:def getRow(self, rowIndex: int) -> List[int]:row [1, 1]if rowIndex < 1:return row[:rowIndex 1]elif rowIndex > 2:for i in range(rowIndex - 1):row [row[j] row[j 1] for j in range(i 1)]row.inser…...

物联网应用系统与网关

一. 传感器底板相关设计 1. 传感器设计 立创EDA传感器设计举例。 2. 传感器实物图 3. 传感器测试举例 测试激光测距传感器 二. 网关相关设计 1. LORA&#xff0c;NBIOT等设计 2. LORA&#xff0c;NBIOT等实物图 3. ZigBee测试 ZigBee测试 4. NBIoT测试 NBIoT自制模块的测试…...

系统稳定性概览

系统稳定性 系统稳定性&#xff0c;包括&#xff1a;监控、 告警、性能优化、慢sql、耗时接口等。 系统的稳定性的治理&#xff0c;可以围绕这几方面展开。 监控 Prometheus 监控并收集数据。监控 qps&#xff0c;tps&#xff0c; rt , cpu使用率&#xff0c;cpu load&#…...

Redis-Cluster模式基操篇

一、场景 1、搞一套6个主节点的Cluster集群 2、模拟数据正常读写 3、模拟单点故障 4、在不停服务的情况下将集群架构改为3主3从 二、环境规划 6台独立的服务器&#xff0c;端口18001~18006 192.169.14.121 192.169.14.122 192.169.14.123 192.169.14.124 192.169.14.125 192…...

Golang | Leetcode Golang题解之第113题路径总和II

题目&#xff1a; 题解&#xff1a; type pair struct {node *TreeNodeleft int }func pathSum(root *TreeNode, targetSum int) (ans [][]int) {if root nil {return}parent : map[*TreeNode]*TreeNode{}getPath : func(node *TreeNode) (path []int) {for ; node ! nil; no…...

云计算与 openstack

文章目录 一、 虚拟化二、云计算2.1 IT系统架构的发展2.2 云计算2.3 云计算的服务类型 三、Openstack3.1 OpenStack核心组件 一、 虚拟化 虚拟化使得在一台物理的服务器上可以跑多台虚拟机&#xff0c;虚拟机共享物理机的 CPU、内存、IO 硬件资源&#xff0c;但逻辑上虚拟机之…...

golang语言的gofly快速开发框架如何设置多样的主题说明

本节教大家如何用gofly快速开发框架后台内置设置参数&#xff0c;配置出合适项目的布局及样式、主题色&#xff0c;让你您的项目在交互上加分&#xff0c;也是能帮你在交付项目时更容易得到客户认可&#xff0c;你的软件使用客户他们一般都是不都技术的&#xff0c;所以当他们拿…...

lynis安全漏洞扫描工具

Lynis是一款Unix系统的安全审计以及加固工具&#xff0c;能够进行深层次的安全扫描&#xff0c;其目的是检测潜在的时间并对未来的系统加固提供建议。这款软件会扫描一般系统信息&#xff0c;脆弱软件包以及潜在的错误配置。 安装 方式1 git下载使用git clone https://github…...

C++ 多重继承的内存布局和指针偏移

在 C 程序里&#xff0c;在有多重继承的类里面。指向派生类对象的基类指针&#xff0c;其实是指向了派生类对象里面&#xff0c;该基类对象的起始位置&#xff0c;该位置相对于派生类对象可能有偏移。偏移的大小&#xff0c;等于派生类的继承顺序表里面&#xff0c;排在该类前面…...

centos时间不对

检查当前时区是否正确 timedatectl status如果时区不正确&#xff0c;使用以下命令设置正确的时区&#xff08;将Asia/Shanghai替换为您所在的时区&#xff09;&#xff1a; timedatectl set-timezone Asia/Shanghai如果时区正确但时间不准确&#xff0c;使用以下命令同步网络…...

通过Redis实现防止接口重复提交功能

本功能是在切面执行链基础上实现的功能&#xff0c;如果不知道切面执行链的同学&#xff0c;请看一下我之前专门介绍切面执行链的文章。 在SpringBoot项目中实现切面执行链功能-CSDN博客 1.定义防重复提交handler /*** 重复提交handler**/ AspectHandlerOrder public class …...

如何构建最小堆?

方式1&#xff1a;上浮调整 /*** 上浮调整(小的上浮)*/ public static void smallUp1(int[] arr, int child) {int parent (child - 1) / 2;while (0 < child && arr[child] < arr[parent]) { // 0 < child说明这个节点还是叶子arr[child] arr[child] ^ ar…...

基于Netty实现安全认证的WebSocket(wss)客户端

1.Netty服务端 服务端代码参考【基于Netty实现安全认证的WebSocket&#xff08;wss&#xff09;服务端-CSDN博客】 2.Netty客户端 客户端代码参考【基于Netty实现WebSocket客户端-CSDN博客】中两种都可以&#xff1b;这里用的是第一种。 新增SslHandler的代码&#xff1a; …...

代码随想录算法训练营第四十四天 | 01背包问题 二维、 01背包问题 一维、416. 分割等和子集

01背包问题 二维 代码随想录 视频讲解&#xff1a;带你学透0-1背包问题&#xff01;| 关于背包问题&#xff0c;你不清楚的地方&#xff0c;这里都讲了&#xff01;| 动态规划经典问题 | 数据结构与算法_哔哩哔哩_bilibili 1.dp数组定义 dp[i][j] 下标为[0,i]之间的物品&…...

redis常见使用场景

文章目录 redis常见使用场景全局ID位统计购物车用户消息时间线timeline抽奖商品筛选分布式锁限流redis实现计数器排行榜消息队列redis 如何实现延时队列 redis生产常用的场景 redis常见使用场景 Redis 是一种高性能的内存数据库&#xff0c;广泛应用于各种场景中。以下是 Redi…...

模糊C均值(FCM)算法更新公式推导

模糊C均值&#xff08;FCM&#xff09;算法更新公式推导 目标函数 FCM的目标函数为&#xff1a; J m ∑ i 1 n ∑ j 1 k u i j m ∥ x i − c j ∥ 2 J_m \sum_{i1}^n \sum_{j1}^k u_{ij}^m \|x_i - c_j\|^2 Jm​i1∑n​j1∑k​uijm​∥xi​−cj​∥2 其中&#xff1a; …...

金融创新浪潮下的拆分盘投资探索

随着数字化时代的步伐加速&#xff0c;金融领域正经历着前所未有的变革。在众多金融创新中&#xff0c;拆分盘作为一种新兴的投资模式&#xff0c;以其独特的增长机制&#xff0c;吸引了投资者的广泛关注。本文将对拆分盘的投资逻辑进行深入剖析&#xff0c;并结合具体案例&…...

一份不知道哪里来的第十五届国赛模拟题

这是一个不知道来源的模拟题目&#xff0c;没有完全完成&#xff0c;只作代码记录&#xff0c;不作分析和展示&#xff0c;极其冗长&#xff0c;但里面有长按短按双击的复合&#xff0c;可以看看。 目录 题目代码底层驱动主程序核心代码关键&#xff1a;双击单击长按复合代码 …...

机器人动力学模型与MATLAB仿真

机器人刚体动力学由以下方程控制&#xff01;&#xff01;&#xff01; startup_rvc mdl_puma560 p560.dyn 提前计算出来这些“disturbance”&#xff0c;然后在控制环路中将它“抵消”&#xff08;有时候也叫前馈控制&#xff09; 求出所需要的力矩&#xff0c;其中M项代表克服…...

SAPUI5基础知识3 - 引导过程(Bootstrap)

1. 背景 在上一篇博客中&#xff0c;我们已经建立出了第一个SAPUI5项目&#xff0c;接下来&#xff0c;我们将为这个项目添加引导过程。 在动手练习之前&#xff0c;让我们先解释一下什么引导过程。 1.1 什么是引导过程&#xff1f; 在计算机科学中&#xff0c;引导过程也称…...

ABAP 借助公司封装的钉钉URL,封装的RFC给钉钉发送消息

FUNCTION ZRFC_BC_SMSSEND_DINGTALK. *"---------------------------------------------------------------------- *"*"本地接口&#xff1a; *" IMPORTING *" VALUE(DESTUSRID) TYPE CHAR255 *" VALUE(CONTENT) TYPE CHAR255 *&quo…...

登录校验及全局异常处理器

登录校验 会话技术 会话:用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束.在一次会话中可以包含多次请求和响应会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同一浏览器,以便在同一次会话请求间共享数据会话跟踪方案 客户端…...

计算机视觉与模式识别实验1-2 图像的形态学操作

文章目录 &#x1f9e1;&#x1f9e1;实验流程&#x1f9e1;&#x1f9e1;1.图像膨胀2.图像腐蚀3.膨胀与腐蚀的综合使用4.对下面二值图像的目标提取骨架&#xff0c;并分析骨架结构。 &#x1f9e1;&#x1f9e1;全部代码&#x1f9e1;&#x1f9e1; &#x1f9e1;&#x1f9e1…...

【前端每日基础】day31——uni-app

uni-app 开发详细介绍 基本概念 uni-app&#xff1a;uni-app 是一个使用 Vue.js 开发多端应用的框架&#xff0c;可以编译到微信小程序、支付宝小程序、百度小程序、字节跳动小程序、H5、App等多个平台。 跨平台&#xff1a;一次开发&#xff0c;多端部署。通过条件编译实现多…...

云动态摘要 2024-05-31

给您带来云厂商的最新动态&#xff0c;最新产品资讯和最新优惠更新。 最新优惠与活动 [1.5折起]年中盛惠--AI分会场 腾讯云 2024-05-30 人脸核身、语音识别、文字识别、数智人、腾讯混元等热门AI产品特惠&#xff0c;1.5折起 云服务器ECS试用产品续用 阿里云 2024-04-14 云…...

Oracle数据块如何存储真实数据

上周休假了几天,颓废了,没有输出。今天写一点内容。 先抛出一个问题。表中的数据在Oracle数据块中是如何存储的呢?今天简单说一下这个问题。通常数据库中的表会存储字符,数字,日期 这3种常见的数据类型。下面的例子就用这3种数据类型作说明 首先,Oracle数据块底层存储这…...

【WEB前端2024】开源智体世界:乔布斯3D纪念馆-第30课-门的移动动画

【WEB前端2024】开源智体世界&#xff1a;乔布斯3D纪念馆-第30课-门的移动动画 使用dtns.network德塔世界&#xff08;开源的智体世界引擎&#xff09;&#xff0c;策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎…...

智能化改造给企业带来的实际效果

1. 提高生产效率&#xff1a;通过自动化和智能化的生产线&#xff0c;减少人工操作&#xff0c;显著提升单位时间内的生产量。 2. 提升产品质量&#xff1a;智能化改造通过精确控制生产过程&#xff0c;减少人为错误&#xff0c;提高产品的一致性和可靠性。 3. 降低生产成本&am…...

深度学习-语言模型

深度学习-语言模型 统计语言模型神经网络语言模型语言模型的应用序列模型&#xff08;Sequence Model&#xff09;语言模型&#xff08;Language Model&#xff09;序列模型和语言模型的区别 语言模型&#xff08;Language Model&#xff09;是自然语言处理&#xff08;NLP&…...

微型导轨在自动化制造中有哪些优势?

微型导轨在自动化制造中发挥重要作用&#xff0c;能够满足自动化设备制造中对精度要求较高的工艺环节。适用于自动装配线、自动检测设备和机器人操作等环节&#xff0c;推动了行业的进步与发展。那么&#xff0c;微型导轨在使用中有哪些优势呢&#xff1f; 1、精度高和稳定性强…...

探索气象数据的多维度三维可视化:PM2.5、风速与高度分析

探索气象数据的多维度可视化&#xff1a;PM2.5、风速与高度分析 摘要 在现代气象学中&#xff0c;数据可视化是理解复杂气象模式和趋势的关键工具。本文将介绍一种先进的数据可视化技术&#xff0c;它能够将PM2.5浓度、风速和高度等多维度数据以直观和动态的方式展现出来。 …...

【传知代码】双深度学习模型实现结直肠癌检测(论文复现)

前言&#xff1a;在医学领域&#xff0c;科技的进步一直是改变人类生活的关键驱动力之一。随着深度学习技术的不断发展&#xff0c;其在医学影像诊断领域的应用正日益受到关注。结直肠癌是一种常见但危害极大的恶性肿瘤&#xff0c;在早期发现和及时治疗方面具有重要意义。然而…...

平衡二叉树的应用举例

AVL 是一种自平衡二叉搜索树&#xff0c;其中任何节点的左右子树的高度之差不能超过 1。 AVL树的特点&#xff1a; 1、它遵循二叉搜索树的一般属性。 2、树的每个子树都是平衡的&#xff0c;即左右子树的高度之差最多为1。 3、当插入新节点时&#xff0c;树会自我平衡。因此…...

一键安装 HaloDB 之 Ansible for Halo

↑ 关注“少安事务所”公众号&#xff0c;欢迎⭐收藏&#xff0c;不错过精彩内容~ 前倾回顾 前面介绍了“光环”数据库的基本情况和安装办法。 哈喽&#xff0c;国产数据库&#xff01;Halo DB! 三步走&#xff0c;Halo DB 安装指引 以及 HaloDB 的 Oracle 和 MySQL 兼容模式: …...