扩容是元素还是数组_Java中对数组的操作

 数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对于数组的实现及处理也不尽相同。

Java语言中提供的数组是用来存储固定大小的同类型元素。如:声明一个数组变量,numbers[100]来代替直接声明100个独立变量number0,number1,...,number99。本文将介绍Java中对于数组的一些简单操作及应用。

1、数组的扩容

/** * 数组的扩容:本质上是先定义一个更大的数组,然后将原数组里面的元素原封不动的拷贝到新数组中 * @param arr:要扩容的数组 * @return:返回扩容后的新数组 */public static String[] extendRange(String[] arr) { //使原数组扩容为原来的2倍 String[] strArr = new String[arr.length*2];  System.arraycopy(arr, 0, strArr, 0, arr.length); return strArr;}

2、数组的查找

/** * 数组的查找:在给定的数组中查找出指定的元素 * @param arr:要查找的数组 * @param index:要查找的元素 * @return:若找到,则返回数组中元素所在的索引,若没有找到则返回-1 */public static int searchElement(String[] arr,String str) { //遍历数组,将数组中的元素与要查找的元素进行一一比对 for(int i=0;i

 3、元素的插入

/** * 元素的插入:在给定的数组中的特定位置插入指定的元素 * 注意:在测试此方法前,应先保证数组索引不会出现越界异常,可先调用extendRange(String[] arr)进行数组扩容 * @param arr:给定的数组 * @param index:要插入的元素索引 * @param str:要插入的元素 * @return:返回插入后的数组 */public static String[] insertElement(String[] arr,int index,String str) { //先找到数组中索引为index的位置 int equalsIndex = -1; //记录数组中索引为index的位置 for(int i=0;i=equalsIndex;i--) { arr[i+1]=arr[i]; } arr[equalsIndex]=str; }else { //没有找到 System.out.println("对不起,您输入的数组索引不存在!"); } return arr;}

 4、元素的修改

/** * 元素的修改:将数组中指定的元素修改为给定的元素 * @param arr:给定的数组 * @param strOld:要修改的元素 * @param strNew:修改后的元素 * @return:返回修改后的数组 */public static String[] modifyElement(String[] arr,String strOld,String strNew) { //调用searchElement(String[] arr,String str)方法查找出要修改的元素所在的索引 int index = searchElement(arr,strOld); //找到啦 if(index!=-1) { arr[index] = strNew; }else { //没找到 System.out.println("对不起,您要修改的元素不存在!"); } return arr;}

5、元素的删除

/** * 元素的删除:将数组中指定的元素删除 * @param arr:给定的数组 * @param str:要删除的元素 * @return:返回删除后的数组 */public static String[] deleteElement(String[] arr,String str) { //调用searchElement(String[] arr,String str)方法查找出要修改的元素所在的索引 int index = searchElement(arr, str); //找到啦 if(index!=-1) { //将index所在及以后索引的元素依次前移一位 for(int i=index;i
8b90183e7d1ce53411496a13a358641c.png

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

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

相关文章

ABP入门系列(20)——使用后台作业和工作者

1.引言 说到后台作业,你可能条件反射的想到BackgroundWorker,但后台作业并非是后台任务,后台作业用一种队列且持久稳固的方式安排一些待执行后台任务。 为执行长时间运行的任务而用户无需等待,以提高用户体验。为创建可重试且持…

加载中_GIS地图在项目中的加载显示

下面我们就来说说如何在应用程序中加载显示GIS地图,首先我们在SuperMap iDesktop 9D(10i)中编辑好我们需要的地图,如下图所示:如上图所示,这是我编辑好的一幅天河区的地图,下面我就以这幅地图为例来说说如何把这样一幅…

ABP入门系列(21)——切换MySQL数据库

1. 引言 Abp支持MySql已经不是什么新鲜事了,但按照官方文档:Entity Framework - MySql Integration来,你未必能成功切换,本文就记录下切换MySql数据库遇到的一些坑,供后人乘凉! 2. 环境准备 MySql数据库…

sm4 前后端 加密_sm4加密

前言项目里需要用到sm4加密,在这里记录一下(springboot)。依赖bouncycastleorg.bouncycastlebcmail-jdk15on1.66cn.hutoolhutool-all5.4.1代码直接贴代码,可以根据自己的需要封装相对应的代码逻辑。//需要注意的是,使用KeyGenerator生成密钥种…

ABP开发框架前后端开发系列---(1)框架的总体介绍

ABP是ASP.NET Boilerplate的简称,ABP是一个开源且文档友好的应用程序框架。ABP不仅仅是一个框架,它还提供了一个最徍实践的基于领域驱动设计(DDD)的体系结构模型。学习使用ABP框架也有一段时间了,一直想全面了解下这个框架的整个来龙去脉,并把…

c++ pdflib输出表格_DescrTab2包,输出SCI级别的描述统计表

今天浏览R包,发现一个不错的包——DescrTab2包。看R包介绍,这个包可以绘制出版物质量级别的描述统计表。看起来很不错。下面来学习下。1. R包安装和加载install.packages("DescrTab2") # 安装包library(DescrTab2) # 加载包2. 加载演示数据集l…

linux – syslog,rsyslog和syslog-ng之间有什么区别?

基本上,它们都是相同的,因为它们都允许在中央存储库中记录来自不同类型系统的数据. 但它们是三个不同的项目,每个项目都试图改进前一个项目,具有更高的可靠性和功能性. Syslog项目是第一个项目.它始于1980年.它是Syslog协议的根项目.此时Syslog是一个非常简单的协议.一开始它只…

python syslog 接口_python接口测试之日志功能

之前在简书中看了一篇关于日志功能的文档,供大家参考:https://www.jianshu.com/p/62f7b49b41e7Python通过logging模块提供日志功能,所以直接导入即可import logging1.定义日志收集器,指定收集器的名称,返回logging对象…

架构、框架和设计模式关系

在学习软件工程的时候,第一次接触到了架构这个概念。当初接触的时候对其的理解是非常浅薄的,因为那时候工程经验比较少,对这样一个深层次的概念还是模糊不清楚的。 随着学习的深入,开始接触了设计模式,也就是那本令我爱…

服务器怎么控制忽略样式_使用JavaScript来编写你的CSS样式代码——JSS

介绍JSS是CSS的创作工具,它允许你使用JavaScript以声明,无冲突和可重用的方式描述样式。它可以在浏览器,服务器端或在构建时在Node中编译。JSS与框架无关。它由多个包组成:核心部分,插件以及框架集成等。Githubhttps:/…

Java设计模式、框架、架构、平台之间的关系

1、设计模式 为什么要先说设计模式?因为设计模式在这些概念中是最基本的,而且也比较简单。那么什么是设计模式呢?说的直白点,设计模式就是告诉你针对特定问题如何组织类、对象和接口之间的关系,是前人总结的经验。比如我要在代码中实现一个…

csrf漏洞防御方案_CSRF原理实战及防御手段

注:本文仅供学习参考csrf定义:CSRF跨站点请求伪造(Cross—Site Request Forgery)攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发…

如何学习(记住)linux命令(常用选项)

作者:林果皞 链接:https://www.zhihu.com/question/21690166/answer/66721478 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 Unix & Linux 命令行特别之处在于,一些选项的设…

python 3.8 新特性 video_1分钟了解:Python3.8 新特性:仅位置参数

这是Python3.8新特性的第二篇,第一篇介绍了赋值表达式,这篇文章花几分钟了解什么是仅位置参数(Positional-Only Arguments)插播一条:我自己是一名从事了多年开发的Python老程序员,辞职目前在做自己的Python私人定制课程&#xff0…

增效工具_【危中寻机】降本增效生存之道 运用IE基础工具提升制造效率

效率提升的利器工业工程IE作为一门学科诞生于美国,却首先在日本得到了最大程度的践行与推广,成为了丰田生产方式TPS及精益制造LP的核心现场IE中的4大核心(工程分析、动作分析、时间分析、布局分析)仍是所有IE的入门工具,被笔者称为“基础IE”…

linux之fstab文件详解

/etc/fstab是用来存放文件系统的静态信息的文件。位于/etc/目录下,可以用命令less /etc/fstab 来查看,如果要修改的话,则用命令 vi /etc/fstab 来修改。 当系统启动的时候,系统会自动地从这个文件读取信息,并且…

python写空气质量提醒_Python数据可视化:2018年空气质量分析

就在本周,我碰巧看到一个学生抱怨天津的空气,我不禁思考的日子他是如此善良的和完善的。没有真相,就无图下面的图片证据。左边的图片是去年2月份。这样的空气真是少见!右边的是Tucao和我第一次买一个口罩!!!面具是好的,因为在那个时候,我用来运行的两个校园课程设计。基本上,我…

Linux日志安全分析技巧

0x00 前言 我正在整理一个项目,收集和汇总了一些应急响应案例(不断更新中)。 GitHub 地址:https://github.com/Bypass007/Emergency-Response-Notes 本文主要介绍Linux日志分析的技巧,更多详细信息请访问Github地址…

as将安卓应用打包_Android Studio打包生成apk的方法(超级简单哦)

释放双眼,带上耳机,听听看~!打包文件是需要生成APK文件,其他人可以通过APK安装和使用,一般来说,包是指APK生成的发布版本,下文技术狗小编还介绍了Android Studio 超级简单的打包生成apk的方法&a…

Linux系统安全日志详解

日志对于安全来说,非常重要,他记录了系统每天发生的各种各样的事情,你可以通过他来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。日志主要的功能有:审计和监测。他还可以实时的监测系统状态,监测和…