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
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • windows平台连接EVE模拟器中网络设备两种方法

    windows平台连接EVE模拟器中网络设备两种方法windows平台下连接eve

  • Origin简单绘图

    Origin简单绘图一、从cadence导出数据仿真生成波形之之后,鼠标选中波形,右击—>SendTo—>Export,进行csv数据的保存。打开该csv文件,删掉第一行,第一行是是横纵坐标的标识,左侧第一列是横坐标值,右侧列是纵坐标值。二、origin简单绘图双击图标打开origin导入csv数据可选中多个csv文件导入为了让两个csv的数据同时显示,在弹出的对话框进行以下操作(默认第二个csv数据会覆盖第一个csv数据)。设置好之后点击“确定”,两个csv数据均被导入到了o

  • Spring常用的三种注入方式「建议收藏」

    Spring常用的三种注入方式「建议收藏」Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入方式主要有三种:构造方法注入,setter注入,基于注解的注入。构造方法注入先简单看一下测试项目的结构,用maven构建的,四个包:entity:存储实体,里面只有一个User类dao:数据访问,一个接口,两个实现类service:服务层,一个接口,一个实现类,实现类依赖于IUserDaotest:测试包在spring的配置文

    2022年10月22日
  • 让Dropdownlist拥有Tooltip属性[通俗易懂]

    让Dropdownlist拥有Tooltip属性[通俗易懂]需求:现在遇到这样一个实例:DropdowList控件占用的宽度只有100px,而数据信息占用宽度有150px以上,在不允许提高宽度的前提下我们只有通过ToolTip属性来得以扩展,方便用户识别各个选项的差异性。在这里我觉得用javascript来实现显得格外的方便.【该段为转载】代码:HTML> HEAD>  TITLE> New Document TITLE>    script 

  • ARMv9刷屏——号称十年最大变革,Realm机密计算技术有什么亮点?

    ARMv9刷屏——号称十年最大变革,Realm机密计算技术有什么亮点?作者/乾越编辑/芹菜出品/云巅论剑ARMv9的新闻刷屏了。ARMv9号称十年以来最重大变革,因此让我们看下ARMv9中机密计算相关的新特性Realm。(注:本文是对IntroducingtheConfidentialComputeArchitecture的部分翻译和个人注解,本文图均来自anandtech.com网站。)背景在过去的几年里,我们看到安全问题和硬件安全漏洞已经成为了新闻热点。许多处理器侧信道漏洞,如幽灵、熔毁以及与它们有关的侧通道攻击,都表明…

  • 翻译软件市场分析_it软件开发 2019年小结

    翻译软件市场分析_it软件开发 2019年小结「译」软件开发趋势 2019 调查报告

发表回复

您的电子邮箱地址不会被公开。

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