-
2021-04-24 10:37:16
众所周知,Java中的数组是固定大小的对象,一旦创建,数组的大小就无法更改。因此,如果您希望有一个可调整大小的类似数组的对象,可以在给定位置插入元素,则可以使用java.util.List对象类型。
本示例将向您展示如何使用java.util.Listandjava.util.ArrayList对象实现数组插入。让我们看下面的代码片段。package org.nhooo.example.util;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ArrayInsert {
public static void main(String[] args) {
// 创建一个整数数组并打印原始值。
Integer[] numbers = new Integer[]{1, 2, 3, 8, 13, 21};
System.out.println("Original numbers: " +
Arrays.toString(numbers));
// 创建一个ArrayList对象并添加数字的全部内容
//数组到列表中。我们使用add(index,element)方法添加
// 元素= 5,索引= 3。
List list = new ArrayList<>();
list.addAll(Arrays.asList(numbers));
list.add(3, 5);
// 将列表转换回数组对象并打印新值。
numbers = list.toArray(new Integer[list.size()]);
System.out.println("After insert : " + Arrays.toString(numbers));
}
}
在原始Integer数字数组上方的代码段中,通过使用方法将数组的所有元素添加到列表中,原始数字数组将被转换为List,在这种情况下,我们ArrayList将使用List.addAll()。的Arrays.asList()可以使用的阵列转换成一个集合类型对象。
接下来,我们在Listusingadd(int index, E element)方法中插入一个新元素。index插入/添加位置在哪里element,元素是要插入的位置。插入新元素后,我们将Listback转换回原始数组。
下面是上面代码片段的结果:Original numbers: [1, 2, 3, 8, 13, 21]
After insert : [1, 2, 3, 5, 8, 13, 21]
更多相关内容 -
JavaScript实现数组在指定位置插入若干元素的方法
2020-12-29 07:46:23本文实例讲述了JavaScript实现数组在指定位置插入若干元素的方法。分享给大家供大家参考。具体如下: 我们可以通过JS数组的splice方法在执行的位置插入新的元素,非常简单 <!DOCTYPE html> <html> <... -
JAVA中数组插入与删除指定元素的实例代码
2020-08-28 02:11:22下面小编就为大家分享一篇JAVA中数组插入与删除指定元素的实例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
java基础回顾之在数组指定位置插入元素
2020-06-20 17:52:06import java.util.Arrays; /** * ClassName:Test ... * Description:在数组指定位置插入元素 * * @date:2020/6/20 17:01 * @author:robin */ public class Test { public static void main(String[]args){package com.bjpowernode.test; import java.util.Arrays; /** * ClassName:Test * PackageName:com.bjpowernode.test * Description:在数组指定位置插入元素 * * @date:2020/6/20 17:01 * @author:robin */ public class Test { public static void main(String[]args){ int[]data={12,23,45,48,50}; //需求:在索引值为2的地方插入一个数:666,敏捷开发就是先定义一个方法。逆向写代码 //期望最终返回: int[]data={12,23,666,45,48,50}; int[] newArray = insert(data, 2, 666); //"C:\Program Files\Java\jdk1.8.0_101\bin\java.exe" "-javaagent:D:\IntelijIdeaInstalled\IntelliJ IDEA 2019.3.1\lib\idea_rt.jar=9043:D:\IntelijIdeaInstalled\IntelliJ IDEA 2019.3.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_101\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\rt.jar;D:\test\target\classes" com.bjpowernode.test.Test //最终返回结果====》[12, 23, 666, 45, 48, 50] System.out.println( "最终返回结果====》"+Arrays.toString(newArray)); } // i表示数组索引,int表示插入的数 data表示原数组 private static int[] insert(int[] data, int i, int key) { //数组扩容,第一步:定义一个更大的数组 int[] data2=new int[data.length+1]; //第二步:把数组中【0,i)范围的元素复制到data2对应的位置 for (int j = 0; j < i; j++) { data2[j]= data[j]; } //第三步:把key元素保存到 data2[i]的位置 data2[i]=key; //第四步:把数组data中(i,data.length)范围的元素复制到data2数组从 i+1对应的位置。 for (int k = i; k <data.length ; k++) { data2[k+1]=data[k]; } return data2; } }
-
Java之数组在指定位置插入元素
2019-08-19 22:45:581.假设在已知数组中在指定位置添加一个元素,那么在这位置的数据元素就会被替换掉。 代码: public class InsertArray { public static void main(String[] args) { int index = 2; int value = 5; int[] ...1.假设在已知数组中在指定位置添加一个元素,那么在这位置的数据元素就会被替换掉。
代码:
public class InsertArray { public static void main(String[] args) { int index = 2; int value = 5; int[] array = new int[]{1,2,3,4}; array[index] = value; System.out.println(Arrays.toString(array)); } }
测试结果:
2.要想解决上面的问题,那只能在创建一个新数组,新数组长度 = 旧数组长度 + 1,在把旧数组里面的元素复制到新元素里面。根据指定位置之后的数组元素往后移一位。再把指定的元素插进去。再把新数组赋给旧数组。代码:
public class InsertArray { public static void main(String[] args) { int index = 2; int value = 5; int[] array = new int[]{1,2,3,4}; int[] newArray = new int[array.length + 1]; for (int i = 0; i < array.length; i++) { newArray[i] = array[i]; } for (int i = newArray.length - 1; i > index; i--) { newArray[i] = newArray[i - 1]; } newArray[index] = value; array = newArray; System.out.println(Arrays.toString(array)); } }
测试结果:
-
从键盘录入数组并往指定位置插入指定的值
2018-07-13 01:35:59用键盘创建任意一维数组,并往指定位置添加指定元素,已添加输入排错功能 -
Java数组按位置进行插入和删除元素-----Java学习之路笔记
2022-01-26 15:37:07自学Java学习之路笔记,若有瑕疵麻烦评论区提出谢谢,祝各位大佬新年快乐哈哈🍺 Java学习之路
🌠 Java开篇:自己是在开学前即将学习Java课程之前自学Java。自我感觉在学习了C语言、数据结构与算法之后,感觉自学Java是真的轻松太多了(可能是我想多了😢),好比如一些语句是真的相通,但是还是会有那么一丢丢丢的区别😄。那么我在之后的学习当中,一些太过于基础而常见的重要知识点我就不再拿出来啦,因为csdn上是真的很多,所以就分享一下自己在自学Java的时候写的一些比较常用常见的知识点和代码!🍧🍧🍧💻💻💻 目前使用的软件为Sublime Text3
📖 Java数组按位置插入元素
⭕️在拿到这种练习题的时候,我首先第一个想到的是C语言中的顺序表,但是呢,我蒙了,没法下笔,由于我还没学到函数吧😄,不会用,就自己在main中操作的,用了一个do-while循环,为了让代码更任性化,添加了是否继续的操作,并且
借助了备用数组和arr数组之间进行Copy来实现数据的插入
,C语言中是可以不用这样的,在C语言中插入位置后面的元素依次向后直接移动就可以了,可能是我还没有学到位或者说这种操作在后面Java是有的,希望各位侠士不要pen我的操作哈😄 ,也希望同胞们多评论指教! ❤️❤️❤️🔥 我的基本想法:
📝 用两个变量接收用户输入的插入位置(locat)以及插入的数值(add);
📝 判断用户输入的插入位置是否合法locat < 1 || locat > arr.length + 1
,若不合法显示提示信息并使用循环重新输入;
📝 若插入位置合法,则将locat位置以及后面的全部元素复制到另外一个数组中,并且下标是l0cat开始(因为arr[locat-1]是插入位置,为了空出位置插入新元素)
;
📝 将插入的元素插入到arrNew[locat-1]
位置上;
📝 再将arr数组中的 locat 位置前面所有元素再复制到arrNew中去;
📝 使arr重新指向arrNew数组。
1️⃣ code:
import java.util.Scanner; public class ArrayAdd { public static void main(String[] args) { int arr[] = {1,2,3,4,5}; //arr初始值 System.out.println("=======before of Add========"); for (int i = 0;i < arr.length ;i++ ) { System.out.println("arr[" + i + "] = " + arr[i]); } char ch; do{//do-while循环 Scanner myScanner = new Scanner(System.in); System.out.print("请输入插入的位置及值(用空格隔开):"); int locat = myScanner.nextInt();//接收位置 int add = myScanner.nextInt();//接收插入的数据元素 if (locat > arr.length + 1 || locat < 1) { //判断位置合法性 System.out.println("插入位置不合法"); } else { int m = arr.length; int arrNew[] = new int[arr.length + 1]; //arrNew数组大小为arr.length + 1 while(m >= locat){//赋值后面的元素 arrNew[m] = arr[m-1]; m--; } arrNew[locat-1] = add; int j = 0; while(j < locat-1){//复制前面的元素 arrNew[j] = arr[j]; j++; } arr = arrNew; //arr重新指向 System.out.println("\n=======after of Add========"); for (int k = 0;k < arr.length ;k++ ) { System.out.println("arr[" + k + "] = " + arr[k]); } } System.out.println("是否继续插入(添加):"); ch = myScanner.next().charAt(0); }while(ch == 'Y' || ch == 'y');//判断是否继续 System.out.println("感谢使用:)"); } } // D:\Java\javacode\chapter06>java ArrayAdd // =======before of Add======== // arr[0] = 1 // arr[1] = 2 // arr[2] = 3 // arr[3] = 4 // arr[4] = 5 // 请输入插入的位置及值(用空格隔开):1 10 // =======after of Add======== // arr[0] = 10 // arr[1] = 1 // arr[2] = 2 // arr[3] = 3 // arr[4] = 4 // arr[5] = 5 // 是否继续插入(添加): // y // 请输入插入的位置及值(用空格隔开):2 20 // =======after of Add======== // arr[0] = 10 // arr[1] = 20 // arr[2] = 1 // arr[3] = 2 // arr[4] = 3 // arr[5] = 4 // arr[6] = 5 // 是否继续插入(添加): // y // 请输入插入的位置及值(用空格隔开):3 100 // =======after of Add======== // arr[0] = 10 // arr[1] = 20 // arr[2] = 100 // arr[3] = 1 // arr[4] = 2 // arr[5] = 3 // arr[6] = 4 // arr[7] = 5 // 是否继续插入(添加): // y // 请输入插入的位置及值(用空格隔开):7 1000 // =======after of Add======== // arr[0] = 10 // arr[1] = 20 // arr[2] = 100 // arr[3] = 1 // arr[4] = 2 // arr[5] = 3 // arr[6] = 1000 // arr[7] = 4 // arr[8] = 5 // 是否继续插入(添加): // ........
📖 Java数组按位置删除元素
🔥 我的基本想法:
📝 同样的思想,使用备用数组 arrNew 进行删除arr中的元素;
📝 接收用户输入的删除位置locat(实际删除的是locat-1的位置上的元素
);
📝 判断arr数组长度是否为<1,是则没有元素可删除,否则进行删除;
📝 判断删除位置locat是否合法:locat > arr.length || locat < 1
,若不合法显示提示信息并使用循环重新输入;
合法,则将locat位置之后的所有元素复制到备用数组arrNew(arrNew数组长度为arr数组的长度-1
)中,且从locat-1位置开始的(相当于arr中的locat-1位置元素不要了)
;
📝 再将locat-1之前的所有元素复制到arrNew前面去;
📝 使arr重新指向arrNew数组。
2️⃣ code:
import java.util.Scanner; public class ArrayDelete { public static void main(String[] args) { int arr[] = {1,2,3,4,5}; //arr初始值 System.out.println("=======before of Add========"); for (int i = 0;i < arr.length ;i++ ) { System.out.println("arr[" + i + "] = " + arr[i]); } char ch; do{//do-while循环 Scanner myScanner = new Scanner(System.in); System.out.print("请输入删除的元素的位置:"); int locat = myScanner.nextInt(); if (arr.length < 1) {//判断是否有可删除的元素 System.out.println("没有元素了"); break; } if (locat > arr.length || locat < 1) {//判断位置合法性 System.out.println("删除位置不合法"); } else { int arrNew[] = new int[arr.length-1]; for (int m = locat,j = 0 ; m <= arr.length - 1 ;m++,j++ ) { arrNew[m-1] = arr[m];//复制后面的元素 } for (int n = 0; n < locat-1 ;n++ ) {//复制前面的元素 arrNew[n] = arr[n]; } arr = arrNew; //arr重新指向 System.out.println("\n=======after of Add========"); for (int k = 0;k < arr.length ;k++ ) { System.out.println("arr[" + k + "] = " + arr[k]); } } System.out.println("是否继续删除(y || Y):"); ch = myScanner.next().charAt(0); }while(ch == 'Y' || ch == 'y');//判断是否继续 System.out.println("感谢使用:)"); } } // D:\Java\javacode\chapter06>java ArrayDelete // =======before of Add======== // arr[0] = 1 // arr[1] = 2 // arr[2] = 3 // arr[3] = 4 // arr[4] = 5 // 请输入删除的元素的位置:5 // =======after of Add======== // arr[0] = 1 // arr[1] = 2 // arr[2] = 3 // arr[3] = 4 // 是否继续删除(y || Y): // y // 请输入删除的元素的位置:4 // =======after of Add======== // arr[0] = 1 // arr[1] = 2 // arr[2] = 3 // 是否继续删除(y || Y): // y // 请输入删除的元素的位置:3 // =======after of Add======== // arr[0] = 1 // arr[1] = 2 // 是否继续删除(y || Y): // y // 请输入删除的元素的位置:2 // =======after of Add======== // arr[0] = 1 // 是否继续删除(y || Y): // y // 请输入删除的元素的位置:1 // =======after of Add======== // 是否继续删除(缩减): // y // 请输入删除的元素的位置:2 // 没有元素了 // 感谢使用:)
🎓🎓🎓 感谢浏览,下篇见 👀
-
方法 在指定数组指定位置插入元素
2020-04-25 23:21:57在指定位置插入指定元素【难点】 存在一个数组,数组中的元素为 int[] array = {1, 3, 5, 7, 9, 11, 13, 15, 17, 0}; 要求 1. 0是无效元素,仅占位使用 2. 当前数组中【有效元素】个数为9 需求 在该... -
数组中实现指定位置插入数据。不用Arraylist
2021-03-07 23:40:20/***此方法只适合少量数据的数据插入操作*@authoryijie**/publicclassTest{staticint[]numArray={1,...publicstaticvoidmain(String[]args){//4为5在数组的位置,可以用代码求我就不写了int[]numArray=insertInIndex... -
JAVA数组指定位置插入元素
2019-10-08 21:57:45import java.util.Scanner; public class ArraysInsert { public static void main(String[] args) { Scanner input =new Scanner(System.in); System.out.println("请输入插入的数"); int a=i... -
数组指定位置插入数据--JAVA
2020-12-02 00:09:51当前代码实现的是数组的指定位置插入数据的代码。 package com.java.array; /** * 向数组插入数据的思想 * 1、需要判断插入位置的下标是否是数组的正常范围之内 * 2、如果数组实际元素达到数组容量的上限,则... -
JAVA中的在指定的位置插入数组元素与删除指定的数组元素
2019-12-15 20:51:13import java.util.InputMismatchException; import java.util.Scanner;... * 从键盘接收数据存放到数组中,并且对数组中的数据进行管理 * @author Administrator * */ public class DataManage { /** *... -
在Java中的2D数组中的指定位置插入元素或删除元素
2019-11-09 21:38:26我有一个要求在用户指定的某些元素之后添加给定元素或删除用户指定的元素.数组中的每个元素都是唯一的.样本json值看起来像[[4,5],[3,1,6,7],[34,21,55]].考虑一种情况,我想在元素7之后添加2个元素12,13,结果数组看... -
Java数组在特定下标处添加元素
2022-05-15 16:09:36//数组创建以后长度不变,定义新的数组添加长度 String array1[] = new String[] {"1","2","3","4"}; String array2[] = new String[array1.length + 1]; int key = 2; String value = "10"; for(int i ... -
JAVA中的数组插入与删除指定元素
2021-02-12 11:09:23今天学了Java的数组,写了数组.../**给数组指定位置数组的插入*/import java.util.*;public class ArrayInsert{public static void main(String []args){System.out.println("请用键盘输入5个数:");int [] array =n... -
Java中数组的插入、查找、指定位置存放、覆盖
2020-12-04 08:47:48数组中在指定位置插入指定值总结 一、什么数组? 示例:数组是用来存放相同类型的数据的集合 二、储存空间(栈空间和堆空间) 三、代码以及效果图 1.利用数组来求最大值和最小值 案例:从键盘接受10个整数,求出... -
java数组新增插入元素
2022-01-13 10:23:04import java.util.Arrays; public class practice { public static void main(String[] args) { int array[] = {2, 5, -2, 6, -3, 8, 0, -7, -9, 4}; Arrays.sort(array); printArray("数组排序:", array); ... -
java数组指定位置插入元素
2019-03-10 12:38:06//arr 原数组 item 需要插入的元素数组 index 插入的位置不是数组下标 public static void insert(Object[] arr,Object[] item,int index) { Object[] newArr = new Object[arr.length+item.length]; if(index... -
java数组中如何查找元素的位置?
2021-02-12 13:52:20就拿我们最近学习的java数组中,想要对元素查找可以选择binarySearch的方法,不过这个用法必须要先对数组进行排序。接下来就java中使用binarySearch查找元素的方法带来详解。1、binarySearch概念binarySearch()方法... -
Java数组插入或删除元素
2018-04-09 00:44:21Java数组插入或删除元素 **练习1.随机生成一个整数型数组(1-10数组长度随机,0-50数组元素随机) 在其数组的最后追加一个1-50随机数值** public class ArrayInsert1{ public static void main(String[] args){ ... -
在JS数组指定位置插入元素
2021-04-12 19:52:54最近我碰到了这样一个需求: 将一个元素插入到现有数组的特定索引处。听起来很容易和常见,但需要一点时间来研究它。//原来的数组vararray=["one","two","four"];//splice(position,numberOfItemsToRemove,item)//拼接... -
Java 实现向数组指定位置写入元素
2016-04-02 17:20:11Java 实现向数组指定位置写入元素,比较通过遍历和copy array的方式。 -
在JS数组特定索引处指定位置插入或修改元素的技巧
2022-03-12 20:47:12这篇文章主要介绍了如何在JS数组特定索引处指定位置插入元素?将一个元素插入到现有数组的特定索引处,需要的朋友可以参考下 ... -
java数组添加元素,java数组如何添加一个元素
2020-12-29 06:41:54java数组如何添加元素向数组里添加一个元素怎么添加,这儿总结有三种方法:1、一般数组是不能添加元素的,因为他们在初始化时就已定好长度了,不能改变长度。但有个可以改变大小的数组为ArrayList,即可以定义一个... -
在数组的指定位置插入一个数据
2022-03-11 17:15:47在索引2中插入一个元素构成一个新的数组 public class 指定位置插入数据{ public static void main(String[] args){ int []i={23,555,2,8,76,780};//定义一个数组 int []j=new int [i.length+1];//定义一个新的... -
Java 数组查找指定元素
2022-04-30 08:20:23binarSearch: 第一钟形式: binaySearch(object [] a , object key) 对象数组a 表示要查找的数组元素 , 对象数组key 表示 要查找...插入点指搜索键将要插入数组的位置,即第一个大于此键的元素索引。 d... -
Java查找给定元素插入位置、数组插入式复制
2021-03-30 22:48:09* 给定一个排序数组和一个目标值,在数组中查找目标值,返回其索引,若目标值不存在,返回它将要被按顺序插入的位置 * 假设数组无重复元素 * 示例: * 输入:{1,3,5,6} ,5 输出:2 * 示例: * 输入:{1,3,5,6} ,4 ...