java数组添加元素的方法_java对象数组添加新数据

我们知道,在C语言和java当中都是一种十分重要的数据结构,但是熟悉数组的朋友都知道,数组一旦被赋值就很难被轻易改动,相比之下人们往往更偏向另一种类似于数组当中但比数组更灵活的集合类型。但是,爱挑战的我。纵使数组在复制之后很难被改动,但是不意味着不能被改动,今天我就教大家如何对数组进行添加元素和删除元素操作以及插入元素操作。

打开eclipse我们新建一个类,加入main方法后声明一个数组,来(上代码)!

package ShuZu;

import java.util.Arrays;

public class Arry1 {

/*

* 如何增加数组中的元素

* 1)先创立一个新数组

* 2)将老数组的元素加进新数组里面

* 3)其余的元素自己家此处加一个9

*/

public static void main(String args) {

int arry = new int {6,7,8};

//创建一个新数组,其长度为老数组的加一

int newArry = new int[arry.length+1];

System.out.println("未添加之前的数组:"+Arrays.toString(arry));

int dst = 9;

for(int i =0;i<arry.length;i++) {

//将原数组加入到新数组当中

newArry=arry;

}

//将目标元素加入到新数组当中

newArry[arry.length]=dst;//此处arry.lenth是新数组的最后后一个元素,为什么?第一个元素从零开始算起

//新数组替换原数组

arry=newArry;

//输出数组的值

System.out.println("添加之后的数组:"+Arrays.toString(arry));

}

}

执行结果如下:

java数组添加元素的方法_java对象数组添加新数据

对于对数组添加元素的操作当中,最核心的一部分就是新建一个空数组并且使该数组的长度为原数组长度加一,然后再将旧数组当中的元素一一复制到这个新数组当中然后再将目标元素添加进入数组即可也就是这个操作:newArry[arry.length]=dst;对于为什么该数组下标为Arry.length,那是因为数组的下标都是从零开始算,因此该数组最后一个值当然是原数组的长度了。当然笔者还在思考另一个问题: for(int i =0;i<arry.length;i++) {

//将原数组加入到新数组当中

newArry=arry;

}在这段循环当中为什么i<arry.length而不是i<newArray.length呢?那是因为在该循环体当中进行赋值操作时newArray=arry,当i=newArray.length时,arry是会出现越界操作。

接下来我们继续讲讲如何在原数组当中进行删除元素操作上代码:

package ShuZu;

import java.util.Arrays;

public class Arry2 {

public static void main(String args) {

int arry =new int {4,5,6,7,8};

System.out.println("删除之前的数组:"+Arrays.toString(arry));

//要删除的目标元素下标此处是在该数组的第2个位置进行删除

int index =2;

//新建一个数组

int newArry = new int[arry.length-1];

//弄一个循环,,将原数组符合条件的加进新数组当中

for(int i = 0;i<newArry.length;i++) {

if(i<index) {//在下标元素之前

newArry =arry;

}else {//下标元素之后

newArry=arry[i+1];

}

}

//新数组对老数组进行替换

arry = newArry;

//输出新数组

System.out.println("删除之后的数组:"+Arrays.toString(arry));

}

}

其运行结果如下:

java数组添加元素的方法_java对象数组添加新数据

仔细观察代码,我们会发现,删除元素的操作依旧是新建一个空数组并使它的长度为原数组减一。

然后进行筛选,将原数组当中符合条件的元素一一复制到新数组当中。

接下来是插入元素操作:

import java.util.Arrays;

public class array3 {

public static void main(String args) {

//建立一个数组,并进行赋值

int arry = new int {2,3,4,5,6};

System.out.println("插入之前的操作:"+Arrays.toString(arry));

int index=2;//设置下标索引值

int element = 9;//设置插入的值

//再创建一个新数组,并且将其长度设置为原数组的长度加一

int newArray = new int[arry.length+1];

for(int i =0;i<arry.length;i++) {

//接下来对原数组的元素进行筛选操作

if(i<index) {

newArray=arry;

}else {

//当i=时,将其空出。之后的位置继续由原数组复制添加进来

newArray[i+1]=arry;

}

}

//将新数组下标为index的空元素进行填补。就是插入操作

newArray = element;

//将原数组用新数组进行替换

arry = newArray;

System.out.println("笔者在3和4之间插入一个9");

System.out.println("插入后的数组:"+Arrays.toString(arry));//将数组转为字符串输出。

}

}

其运行结果如下:

java数组添加元素的方法_java对象数组添加新数据

仔细观察上述代码操作我们不难发现,在进行元素添加、删除和插入操作时。其核心思想都是新建一个空数组,然后将原数组当中符合条件的元素一一复制到新的数组当中。最后我想请大家思考一下,如果将上述操作用一个类封装起来并用面向对象的思想实现会是怎么样的呢?那么他们和集合有什么区别呢?

本文【java数组添加元素的方法_java对象数组添加新数据】由作者: 递归 提供,本站不拥有所有权,只提供储存服务,如有侵权,联系删除!
本文链接:https://www.cuoshuo.com/blog/4077.html

(0)
上一篇 2023-03-08 11:09:32
下一篇 2023-03-09 07:02:39

相关推荐

  • 社会工程学软件实训报告,实训报告怎么写

    社会工程学是利用人性弱点体察、获取有价值信息的实践方法,它是一种欺骗的艺术。在缺少目标系统的必要信息时,社会工程学技术是渗透测试人员获取信息的至关重要的手段。对所有类型的组织(单位)而言,人都是安全防范措施里最薄弱的一环,也是整个安全基础设施最脆弱的层面。人都是社会的产物,人的本性就是社会性,所以人都有社会学方面的弱点都易受社会工程学攻击。社会工程学的攻击人…

    2023-03-19
    000
  • 平面广告设计实用教程(广告平面设计是什么)

    1、软件 工欲善其事,必先利其器——先把软件工具学好,不然你有再好的想法都无法实现。photoshop(ps)、coreldraw(cdr)、illustrator(ai),这是现在市场上主流的平面设计软件。ps不用说,这是肯定要学的。主要用来图像处理、图像合成的。 2、色彩搭配 任何一幅设计作品都需要色彩的参与,不管你是平面设计、网页设计或者其他的啥设计。…

    2023-03-16
    100
  • qq互联授权管理为什么不全(qq授权管理在哪里设置)

    如今个人信息泄露事件频频出现 在使用不同的APP或者网站注册新账号时 相信不少人都会图个方便 直接用微信或者QQ授权登入 不过在使用授权登入的同时 这些 App 以及网站都通过微信( QQ ) 读取到我们的一些个人信息 这样的习惯或多或少存在一些信息安全隐患 不要怕,这个是可以解决滴~ 今天蜀黍就和大家分享下 如何检查那些年自己的微信、QQ 以及微博、小程序…

    2023-03-19
    100
  • linux发邮件mail发不出去(linux发邮件显示无效邮箱)

    人永远是要学习的。死的时候,才是毕业的时候。 —— 萧楚女 在linux系统上收发邮件都使用一个命令,即mail命令。假设你现在在root的家目录,你现在要发送一个电子邮件给goddog用户。命令如下,在mail命令中-s(subject的第一个字母)表示有设定邮件的主题,主题就是放在-s之后双引号括起来的部分,这部分可以根据需要随便输入。goddog为邮件…

    2023-03-15
    300
  • vc60安装教程win10无法正常使用(win10点关机没反应)

    许多大学都有学习c语言的课程,一般这些学校上机用的是vc.60,但是自己在win10的系统上,vc6.0会显示无法正常启动 接下来给大家带来一个解决方法!这个方法是网上的答案,后面会给大家说一下小编自己电脑上的解决方法 下面是具体的操作步骤。 在 VC6.0 的快捷方式或开始菜单上单击鼠标右键,选择“属性”: 在弹出的对话框中,将兼容模式修改为Windows…

    2023-03-15
    100
  • jquery特效的设计与制作

    最近在学习jquery,发现jquery上手比javascript容易许多,因为有着良好的文档和帮助手册,如果遇到一些问题可以借助文档来解决。初步接触学习jquery,我发现学习jquery主要是学会如何使用内置的方法。 今天就跟大家一起分享下,我用jquery写的一个banner全屏特效切换的案例,以及制作它运用了哪些jquery内置方法。 思路: 注:这…

    2023-03-16
    400
  • web推送服务,微信服务号推送次数

    被折叠的订阅号图文打开率已经锐减至5%上下,服务号和订阅号合并的消息也在坊间流传,有一部分人为了提高图文打开率并获得更多更高的接口与权限,悄悄地把自己的订阅号升级为服务号,可服务号一个自然月只能推四次消息难免成为某些人心中的痛。今天遥望燕园要放个大招,教你突破服务号一个自然月仅能推送四次消息的限制。当然了,所谓的突破不是真正意义上的突破,但这个突破的意义还是…

    2023-03-20
    000
  • gcc编译器windows安装

    Vs code搭建C语言环境 为啥想起来要装gcc?是因为亲属家的大一新生小朋友问我关于c的问题!好吧,学c语言那是20年前的事儿了,但是在小朋友面前也不能跌份,于是乎准备温习一下c!一切代码都的从选IDE开始,网上看了一下,现在比较多的就是推荐visual studio(vs)和visual studio code(vs code),如果想写点小demo的…

    2023-03-08
    1000
  • 数据库备份sql语句_sql语句在哪里写

    前言: 备份乃不死之王! 一、全表结构备份: SELECT INTO 语句:表示从一个表中选取数据,然后把数据插入另一个表中,常用来备份一张表 INSERT INTO new_table_name SELECT * FROM old_tablename;示例:备份student表,备份表取名为student_backup insert into studen…

    2023-03-11
    500
  • 万年历代码实验报告 万年历原理图的讲解

    1、设计任务书: 设计任务书 学生姓名:班级:学号: 题目:1602A液晶显示万年历设计 一、设计任务: 本设计由数据显示模块、温度采集模块、时间处理模块和调整设置模块四个模块组成。 系统以AT89S52单片机为 控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰 年补偿等多种功能。温度采集选用DS18B2…

    2023-03-17
    100

发表回复

登录后才能评论
返回顶部
错说博客上线啦!