前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java数组插入或删除元素

Java数组插入或删除元素

作者头像
全栈程序员站长
发布2022-09-13 10:39:52
1.5K0
发布2022-09-13 10:39:52
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

Java数组常见操作练习


Java数组插入或删除元素

**练习1.随机生成一个整数型数组(1-10数组长度随机,0-50数组元素随机) 在其数组的最后追加一个1-50随机数值**

代码语言:javascript
复制
public class ArrayInsert1{
    public static void main(String[] args){
        int[] arr=genArray();
        printArray(arr);
        int value=(int)(Math.random()*50+1);
        System.out.println("随机输入的一个数值是:"+value);
        int[] res=insertArray(arr,value);
        printArray(res);
    }
//随机生成一个数组(数组长度在1-10之间,数组元素在0-50之间)
    public static int[] genArray(){
        int line=(int)(Math.random()*10+1);
        int[] arr=new int[line];
        for(int i=0;i<arr.length;i++){
            int r=(int)(Math.random()*51);
            arr[i]=r;
        }
        return arr;
    }
//打印数组
    public static void printArray(int[] arr){
        for(int i=0;i<arr.length;i++){
            System.out.print(arr[i]+" ");
        }
        System.out.println();
    }
//生成一个新的数组,新数组中最后一位包含追加的随机数值
    public static int[] insertArray(int[] arr, int value){
        int[] res=new int[arr.length+1];
        int index=0;
        for(int i=0;i<arr.length;i++){
            res[index]=arr[i];
            index++;
        }
        res[res.length-1]=value;
        return res;
    }
}

**练习2.键盘输入一个整数型数组(数组长度和数组元素都是键盘输入) 在数组中任意位置上插入一个从键盘上录入的数值,打印出 插入指定数值后的新数组**

代码语言:javascript
复制
import java.util.Scanner;
public class ArrayInsert2{
    public static void main(String[] args){
        int[] arr=genArray();
        printArray(arr);
        Scanner s=new Scanner(System.in);
        System.out.print("请您输入一个所需要插入的数值:");
        int value=s.nextInt();
        System.out.print("请您输入所需要插入的位置索引值:");
        int position=s.nextInt();
        int[] res=arrayAnyInsert(arr,position,value);
        if(res != null){
            printArray(res);
        }else{
            System.out.println("位置非法");
        }
    }
    public static int[] genArray(){
        Scanner s=new Scanner(System.in);
        System.out.print("请您输入所需要的数组元素长度:");
        int line=s.nextInt();
        int[] arr=new int[line];
        for(int i=0;i<arr.length;i++){
            System.out.print("请您输入所需要的数组元素:");
            int r=s.nextInt();
            arr[i]=r;
        }
        return arr;
    }
    public static int[] arrayAnyInsert(int[] arr,int position,int value){
        int[] res=new int[arr.length+1];
        if(position<0 || position>res.length){
            return null;
        }
        for(int i=0;i<res.length;i++){
            if(i<position){
                res[i]=arr[i];
            }else if(i==position){
                res[i]=value;
            }else{
                res[i]=arr[i-1];
            }
        }
        return res;
    }
    public static void printArray(int[] arr){
        for(int i=0;i<arr.length;i++){
            System.out.print(arr[i]+" ");
        }
        System.out.println();
    }
}
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

练习3.删除int型数组指定位置的元素

代码语言:javascript
复制
public class ArrayDelAnyPosition{
    public static void main(String[] args){
        int[] arr = {
  
  1,2,3,4,5,5,5,5};
        int position = 10;
        int[] res = delAnyPosition(arr,position);
        if(res != null){
            print(res);
        }else{
            System.out.println("位置非法");
        }
    }
    public static int[] delAnyPosition(int[] arr,int position){
//判断是否合法
        if(position >= arr.length || position < 0){
            return null;
        }
        int[] res = new int[arr.length - 1];
        for(int i = 0;i<res.length;i++){
            if(i < position){
                res[i] = arr[i];
            }else{
                res[i] = arr[i + 1];
            }
        }
        return res;
    }
    public static void print(int[] arr){
        for(int i = 0;i<arr.length;i++){
            System.out.print(arr[i] + " ");
        }
        System.out.println();
    }
}

练习4.删除元素:包含多个要删除的元素,都删除

代码语言:javascript
复制
public class ArrayDelElementDemo{
    public static void main(String[] args){
        int[] arr = {
  
  1,2,2,1,3,5,5};
        int value = 50;
        print(delElement(arr,value));
    }
//删除指定的元素
    public static int[] delElement(int[] arr,int value){
//判断数组中是否包含指定值
        if(!isExist(arr,value)){
            return arr;
        }
//统计有多少个要删除的元素
        int count = 0;
        for(int i = 0;i<arr.length;i++){
            if(arr[i] == value){
                count++;
            }
        }
//创建新数组
        int[] res = new int[arr.length - count];

//遍历原数组,把不等于value的值赋值给res
        int index = 0;
        for(int i = 0;i<arr.length;i++){
            if(arr[i] != value){
                res[index++] = arr[i];
            }
        }
        return res;
    }
    //判断数组中是否包含指定值
    public static boolean isExist(int[] arr,int value){
        for(int i = 0;i<arr.length;i++){
            if(arr[i] == value){
                return true;
            }
        }
        return false;
    }
    public static void print(int[] arr){
        for(int i = 0;i<arr.length;i++){
            System.out.print(arr[i] + " ");
        }
        System.out.println();
    }
}

数组的反转(数组的逆序)

这里写图片描述
这里写图片描述
代码语言:javascript
复制
/* 数组的反转(逆数组) */
package oldboy;
public class ArrayDemo_2 {
    public static void main(String[] args) {
        int[] arr={
  
  1,2,3,4,5};
        System.out.println("反转之前,数组是:");
        print(arr);
        System.out.println("反转之后,数组是:");
        inverseArray(arr);
        print(arr);
    }
    public static void inverseArray(int[] arr){
        //计算交换次数
        int n=arr.length/2;
        //将数组中的两个元素进行交换
        for (int i = 0; i < n; i++) {
            int temp=arr[i];
            arr[i]=arr[arr.length-1-i];
            arr[arr.length-1-i]=temp;
        }
    }
    public static void print(int[] arr){
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]);
        }
        System.out.println();
    }
}
运行结果是:反转之前,数组是:
        12345
        反转之后,数组是:
        54321

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/160426.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Java数组常见操作练习
  • Java数组插入或删除元素
  • 数组的反转(数组的逆序)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档