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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • davinci DM365-DM368开发攻略—linux-2.6.32移植

    davinci DM365-DM368开发攻略—linux-2.6.32移植本文最始出自http://www.360doc.com/content/12/0318/16/532901_195392228.shtml一、介绍linux-2.6.32:Linux-2.6.32的网上介绍:增添了虚拟化内存de-duplicacion、重写了writeback代码、改进了Btrfs文件系统、添加了ATIR600/R7003D和KMS支持…

    2022年8月13日
    6
  • Apifox(2)快速上手apifox[通俗易懂]

    Apifox(2)快速上手apifox[通俗易懂]快速上手使用场景Apifox是接口管理、开发、测试全流程集成工具,使用受众为整个研发技术团队,主要使用者为前端开发、后端开发和测试人员。前端开发接口文档管理接口数据Mock接口调试前

    2022年7月31日
    14
  • 一篇文带你从0到1了解建站及完成CMS系统编写

    一篇文带你从0到1了解建站及完成CMS系统编写学习目标了解搭建一般网站的简便方式了解最原始一般站点搭建了解内容管理站点搭建了解权限设计及完成了解使用设计模式减少代码冗余了解前端拖拽页面生成及生成了解自定义数据的创建了解动态生成的前端页如何绑定自定义数据开发环境Windows7*64SP1php5.6apache/nginxthinkphp5.1mysqlphpstudy2018sqlyoglayoutit声明文章为从0到1了解内容管理系统搭建与编写,由于一篇文章内容篇幅过长,文章内容经过压缩,该项目中相

    2022年6月5日
    47
  • c#窗体怎么居中_窗口居中

    c#窗体怎么居中_窗口居中窗体始终居桌面中央显示,需要考虑以下两个方面:(1).窗体距离桌面左部边缘与桌面的宽度以及自身宽度的判断;(2).窗体距离桌面上边缘与桌面的高度以及自身高度的判断下面用代码一一实现,当然这都是在窗体加载时完成this.Left=Screen.PrimaryScreen.Bounds.Width/2-this.Width/2;//桌面的宽度的一半减去自身宽的的一半this…….

    2025年10月14日
    4
  • java中stringBuilder常用方法[通俗易懂]

    java中stringBuilder常用方法[通俗易懂]String对象是不可改变的。每次使用System.String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的String对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用System.Text.StringBuilder类。例如,当在一个循环中将许多字符串连接在一起时,使用StringBuilder类可以提升性能。通过用一个重载的构造函数方法初始化变量,可以创建StringBuild

    2022年7月17日
    27
  • 【JAVA学习】单例模式的七种写法

    【JAVA学习】单例模式的七种写法

    2022年1月24日
    38

发表回复

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

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