ArrayList部分功能实现

public class MyArraylist {public int[] elem;public int usedSize = 0;//0//默认容量private static final int DEFAULT_SIZE = 10;public MyArraylist() {this.elem = new int[DEFAULT_SIZE];}/*** 打印顺序表:* 根据usedSize判断即可*/public void display() {for (int i = 0; i < usedSize; i++) {System.out.println(elem[i] + " ");}System.out.println();}// 新增元素,默认在数组最后新增public void add(int data) {if (isFull()) {elem = Arrays.copyOf(elem,2*elem.length);}elem[usedSize] = data;usedSize++;}/*** 判断当前的顺序表是不是满的!** @return true:满   false代表空*/public boolean isFull() {return usedSize == elem.length;}private boolean checkPosInAdd(int pos) {if (pos < 0 || pos > usedSize) {throw new PosException("pos位置:" + pos);}return true;//合法}// 在 pos 位置新增元素public void add(int pos, int data) {checkPosInAdd(pos);if (isFull()) {elem = Arrays.copyOf(elem, 2 * elem.length);}for (int i = usedSize - 1; i >= pos; i--) {elem[i + 1] = elem[i];}elem[pos] = data;usedSize++;}// 判定是否包含某个元素public boolean contains(int toFind) {for (int i = 0; i < usedSize; i++) {if (elem[i] == toFind) {return true;}}return false;}// 查找某个元素对应的位置public int indexOf(int toFind) {for (int i = 0; i < usedSize; i++) {if (elem[i] == toFind) {return i;}}return -1;}// 获取 pos 位置的元素public int get(int pos) {checkPosInAdd(pos);if (isEmpty()) {throw new EmptyException("顺序表为空");}return elem[pos];}private boolean isEmpty() {return usedSize == 0;}// 给 pos 位置的元素设为【更新为】 valuepublic void set(int pos, int value) {checkPosInAdd(pos);if (isEmpty()) {throw new EmptyException("顺序表为空");}elem[pos] = value;}/*** 删除第一次出现的关键字key** @param key*/public void remove(int key) {if (isEmpty()) {throw new RuntimeException("顺序表为空,不能删除");}int index = indexOf(key);for (int i = index; i < usedSize - 1; i++) {elem[i] = elem[i + 1];}usedSize--;}// 获取顺序表长度public int size() {return this.usedSize;}// 清空顺序表public void clear() {usedSize = 0;}
}
public class EmptyException extends RuntimeException{public EmptyException() {}public EmptyException(String msg) {super(msg);}
}
public class PosException extends RuntimeException{public PosException() {}public PosException(String msg) {super(msg);}
}

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

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

相关文章

数据透明化是什么意思,什么是透明管理?

一、透明管理是什么 透明管理专注工业数据可视化分析与呈现&#xff0c;为企业提供一站式数据可视化分析解决方案。聚焦工业BI&#xff0c;基于工业管理特点&#xff0c;打造“指标监控-异常发现-根因溯源-举措拆解-效果监控”管理闭环&#xff0c;实现工业全层级的透明管理。…

SpringCloud-高级篇(十二)

在主从集群中slave节点发生了宕机&#xff0c;不用担心&#xff0c;只要它重启就能从master节点上完成数据的同步&#xff0c;恢复数据&#xff0c;如果宕机的不是slave而是master&#xff0c;是不是master重启就可以呢&#xff1f;如果你做了master节点的数据持久化&#xff0…

GPT火了一年了,你还不懂大语言模型吗?

本文主要介绍大语言的基本原理、以及应用场景和对未来的展望&#xff0c;侧重应用而非技术原理。 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;漫谈LLMs带来的AIGC浪潮 &#x1f380;CSDN主页 发狂的小花 &#…

【Docker】容器的数据卷

目录 概念及作用 配置数据卷 数据共享 一个容器挂载多个数据卷 概念及作用 Docker容器的数据卷是一种特殊类型的目录&#xff0c;即使容器被删除&#xff0c;存在于宿主机上&#xff0c;可以供一个或多个容器使用。数据卷可以绕过联合文件系统&#xff0c;提供持续存储或共…

6547网文库动态 | 少儿编程考级真题、信息学奥赛、PPT课件等

近期动态&#xff1a;少儿编程题库网上传了2023年12月等级考试真题&#xff0c;主要有GESP真题、电子学会青少年软件编程等级考试真题&#xff0c;少儿编程文库系统主要上传了全国中小学信息技术创新与实践大赛&#xff08;NOC大赛&#xff09;真题&#xff0c;信息技术课件&am…

C++CLI——4数组、泛型、集合与属性

CCLI——4数组、泛型、集合与属性 C数组 在c中&#xff0c;数组的大小必须在编译时确定&#xff0c;并且将数组传递给函数时&#xff0c;传递的只是数组起始地址&#xff0c;所以要想办法连同数组大小一同传递给函数。 int arr[4] { 1,2,3,4 }; int arr1[] { 1,2,3,4 }; i…

CodeWave智能开发平台--03--目标:应用创建--07供应商数据表格01

摘要 本文是网易数帆CodeWave智能开发平台系列的第09篇&#xff0c;主要介绍了基于CodeWave平台文档的新手入门进行学习&#xff0c;实现一个完整的应用&#xff0c;本文主要完成07供应商数据表格 CodeWave智能开发平台的09次接触 CodeWave参考资源 网易数帆CodeWave开发者…

相机同步遇到的小问题

出现问题 在进行两个相机显示的时候&#xff0c;出现了相机显示不同步的情况&#xff0c;具体情况如下视频所示&#xff1a; 华睿/大华相机左右相机显示不同步 可以见到视频之中&#xff0c;右相机是比左相机更快一点的&#xff0c;但是有的时候就是同步的。我调用的代码是现成…

mdbook 使用 Rust 创建书籍的 Markdown 工具

当我们使用 markdown 编写文档时&#xff0c;目前有 gitbook&#xff0c;typora &#xff0c;以及一些 vscode 插件提供的 markdown 编辑插件&#xff0c;推荐一个开源实用的由 rust 官方维护的 mdbook。 官方仓库&#xff1a;https://github.com/rust-lang/mdBook 使用向导&a…

基于YOLOv5全系列参数模型【n/s/m/l/x】开发构建道路交通场景下CCTSDB2021交通标识检测识别系统

交通标志检测是交通标志识别系统中的一项重要任务。与其他国家的交通标志相比&#xff0c;中国的交通标志有其独特的特点。卷积神经网络&#xff08;CNN&#xff09;在计算机视觉任务中取得了突破性进展&#xff0c;在交通标志分类方面取得了巨大的成功。CCTSDB 数据集是由长沙…

Centos7 静态连接失败解决

在 Linux 下有时候我们需要静态连接&#xff0c;但是静态连接会失败&#xff0c;失败的原因有几种&#xff1a; 1.没有相关的静态库文件 如果是没有相关的静态库文件&#xff0c;那么使用静态连接的话&#xff0c;就是下面的这种效果&#xff1a; 就是显示无法找到 .... 解…

搭建Github Page完全手册

一、前期准备 注册Github账号&#xff08;必备&#xff09;下载GitHub Desktop&#xff1a;下载链接&#xff08;可使用git代替&#xff09;模板选择网站&#xff1a; jekyllthemes.orggohugomademistakes 二、快速入门 1.模板参考 作者使用的模板来源&#xff1a;https://…

2024年最热门的15个科技工作岗位

1.系统安全管理员 系统安全管理员的任务是确保公司的网络、数据和系统免受网络安全威胁&#xff0c;方法是确保有适当的安全战略并保持最新的合规性和策略。 要求&#xff1a;应聘者应具有网络安全职位的工作经验&#xff0c;并对合规性和安全协议的最佳实践有坚实的基础&a…

阅读技巧总结

1、英语阅读中Skimming和Scanning的区别 Skimming&#xff1a;略读&#xff0c;即&#xff1a;不追求句子的细节含义&#xff0c;只求了解句子和段落想表达什么&#xff0c;摸清楚文章的主旨大意&#xff0c;也就是老外常说的&#xff1a;Reading for gist(主旨) Scanning&am…

文件批量改名,快速去除文件名中的空格,告别命名烦恼!

在日常工作中&#xff0c;我们经常遇到文件名中带有空格的情况&#xff0c;这不仅导致文件难以查找&#xff0c;还可能在某些软件中引发问题。那么&#xff0c;如何快速、有效地去除这些空格呢&#xff1f;今天&#xff0c;我就来教你一招&#xff01; 首先&#xff0c;我们要进…

LeeCode前端算法基础100题(16)- 轮转数组

一、问题详情: 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums = [1,2,3,4,5,6,7], k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: [5,6,7,1,2,3,4]…

【IEEE会议征稿通知】第五届计算机视觉、图像与深度学习国际学术会议(CVIDL 2024)

第五届计算机视觉、图像与深度学习国际学术会议&#xff08;CVIDL 2024&#xff09; 2024 5th International Conference on Computer Vision, Image and Deep Learning 第五届计算机视觉、图像与深度学习国际学术会议&#xff08;CVIDL 2024&#xff09;定于2024年4月19-21日…

银烧结设备研究分析:2025年将增长至2.58亿美元

银烧结设备是一种用于生产银浆的设备&#xff0c;广泛应用于电子、光伏、LED等领域。本文将从全球市场和中国市场两个方面进行分析其发展趋势。全球市场 全球银烧结设备市场规模在2019年约为2.09亿美元&#xff0c;预计到2025年将增长至2.58亿美元&#xff0c;复合年增长率为3.…

LeetCode刷题---两数之和

解题思路&#xff1a; 该题使用哈希表的思想解决该问题 首先定义一个Map&#xff0c;key为数组中的每个元素&#xff0c;value为每个元素的索引下标。接着遍历原数组&#xff0c;对每一个元素进行判断&#xff0c;如果哈希表中包含target-nums[i]&#xff0c;则将其value和当前…