Java数组插入或删除元素

Java数组插入或删除元素Java数组常见操作练习Java数组插入或删除元素**练习1.随机生成一个整数型数组(1-10数组长度随机,0-50数组元素随机)在其数组的最后追加一个1-50随机数值**publicclassArrayInsert1{publicstaticvoidmain(String[]args){int[]arr=genArray();…

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

Java数组常见操作练习


Java数组插入或删除元素

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

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.键盘输入一个整数型数组(数组长度和数组元素都是键盘输入)
在数组中任意位置上插入一个从键盘上录入的数值,打印出
插入指定数值后的新数组**

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型数组指定位置的元素

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.删除元素:包含多个要删除的元素,都删除

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();
    }
}

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

这里写图片描述

/* 数组的反转(逆数组) */
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.net/160426.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • word-embedding_open compound word

    word-embedding_open compound wordWordEmbedding之CBOWCBOW模型结构准备文字数字化构建损失函数基于RNN的方法基于CBOW的方法CBOWCBOW是一个非常优秀的WordEmbedding模型,其原理非常简单,本文章尝试深入模型内部,探索这个模型的性能和表现。模型结构准备再介绍模型的网络结构之前,首先要介绍的是一个向量计算。假定特征为,x=(x0,x1,⋯&amp;amp;amp;amp;amp;ThinSpace;,xn−1…

    2022年9月3日
    2
  • 神器 Nginx 的学习手册 ( 建议收藏 )

    神器 Nginx 的学习手册 ( 建议收藏 )转载:DevOps技术栈Nginx是一个高性能的HTTP和反向代理服务器,特点是占用内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现较好。Nginx…

    2022年9月18日
    0
  • MATLAB函数调用

    MATLAB函数调用数学建模matlab自定义函数时间2020年5月10日学习Matlab自定义函数使用,并结合所学函数简单修改了一下上周的代码实现了Topsis法。1.Matlab语句构成的程序文件称为M文件,以m作为文件的扩展名,分为函数文件和程序文件。程序文件即脚本文件,无function;函数文件有function,且在第一行或者第一个不是注释的行2.两个文件运行函数:函数定义文件和函数调用文件(函数可在脚本文件或命令窗口直接调用),两文件必须放在同一目录下,函数文件名必须与函数名相…

    2022年7月17日
    18
  • C语言字符串输入及输出的几种方式

    C语言字符串输入及输出的几种方式1.字符串数组+初始化chars1[]=”array”;//字符数组chars2[6]=”array”;//数组长度=字符串长度+1,因为字符串末尾会自动添‘\0‘printf(“%s,%c\n”,s1,s2[2]);//array,r2.字符串指针+初始化char*sp=”pointer”;//字符指针printf(“%s,%c,%c\n”,sp,

    2022年7月24日
    5
  • 最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等[通俗易懂]

    最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等

    2022年2月10日
    36
  • smalldatetime

    smalldatetimeSQLSERVER的DateTime类型精度很高,精确到秒再往下,对于一般的系统,完全没有必要,因此日期类型,我通常设置为smalldatetime,精确到分就行了,它的秒恒为0。但今天才知道,它的日期有范围,是1900-01-01到2079-06-06所以象下面这种句子就一定会报错:declare@dateSMALLDATETIME=’2099-01-01’DATETIME:17

    2022年5月20日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号