Java一维数组的增删改查 急!!

Java一维数组的增删改查 急!!,第1张

代码如下:

public class Main {

public static void main(String[] args) {

int[] a = new int[]{92, 87, 2, 3, 4, 6, 7, 8, 22, 9, 12, 16, 20, 66, 23}

findNum(a, 6)

findNum(a, 300)

}

private static void findNum(int[] a, int num) {

for (int i = 0i <a.lengthi++) {

if (a[i] == num) {

System.out.println("在数组中找到了" + num + ",位于数组的" + i + "位置")

return

}

}

System.out.println("数组中没有" + num + "这个数字")

}

}

运行结果:

您好, 删除delete(a,4)删除index=4的数据,即a[4]=4 删除

批量删除delete(a,2)删除所有a[i]=2的数据,即a[2] 、a[6]、 a[7]删除

原题就这么写的,两个方法名一样,参数一样,功能却不一样。

class TestArray{

public static void main(String[]args){

int[] a ={0,1,2,3,4,5,2,2,1}

print(add(a,9,2))

print(delete(a,3))

select(a,2)

print(change(a,2,98))

print(deleteAll(a,2))

}

//增

public static int[] add(int[] array,int num,int index){

int[] result=new int[array.length+1]

for(int i=0,j=0i<array.lengthi++,j++){

if(j==index){

result[j]=num

i--

}else{

result[j]=array[i]

}

}

return result

}

//删

public static int[] delete(int[] array,int index){

int[] result=new int[array.length-1]

for(int i=0,j=0i<array.lengthi++,j++){

if(i==index){

j--

}else{

result[j]=array[i]

}

}

return result

}

//查

public static void select(int[] array,int num){

int count=0

for(int i=0i<array.lengthi++){

if(array[i]==num){

System.out.println("index"+i+"的值为"+num)

count++

}

}

if(count==0)

System.out.println("找不到")

}

//改

public static int[] change(int[] array,int index,int num){

array[index]=num

return array

}

//批量删除

public static int[] deleteAll(int[] array,int num){

int j=0

for(int i=0i<array.lengthi++){

if(array[i]==num){

j++

}

}

int[] result=new int[array.length-j]

j=0

for(int i=0i<array.lengthi++){

if(array[i]!=num){

result[j++]=array[i]

}

}

return result

}

//打印数组

public static void print(int[] array){

for(int i:array){

System.out.print(i+" ")

}

System.out.println()

}

}

第一题:

int[] arr={52,26,97,19,66,8,49}

void arrayAdd()//将200插入26之后(第三位)

{

//通过System.arraycopy方法实现数组的复制

int[] arr2=new int[arr.length+1]

System.arraycopy(arr,0,arr2,0,2)

arr2[2]=200

System.arraycopy(arr,2,arr2,3,5)

//输出结果

for(int i=0i<arr2.length++i)

{

System.out.println(arr2[i])

}

}

第二题和第三题用这个方法就可以了:

int[] arr3={12,34,97,154,64,85,445}

/**删除数组的指定内容

* @param index要删除的下标(要删除97则传入3)

* @param arr 要删除的数组

*/

void arrarRemove(int index,int[] arr)

{

int[] array=new int[arr.length-1]

System.arraycopy(arr,0,array,0,index-1)

System.arraycopy(arr,index,array,index-1,arr.length-index)

// 输出结果

for(int i=0i<array.length++i)

{

System.out.println(array[i])

}

}

没耽误你吧?但也你能采纳。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11460165.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存