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)
上一篇 2022年7月16日 上午8:00
下一篇 2022年7月16日 上午8:00


相关推荐

  • Unity与 DLL文件 ☀️| 怎样使用 C 类库 生成一个DLL文件 并 调用!

    Unity与 DLL文件 ☀️| 怎样使用 C 类库 生成一个DLL文件 并 调用!前一篇博客讲了一下 DLL 的基本概念 那这篇文章就对怎样生成一个 DLL 文件做一个概述 一起来看一下怎样生成一个简单的 DLL 吧

    2026年3月17日
    2
  • 0xFFFFFFFF解读[通俗易懂]

    0xFFFFFFFF解读[通俗易懂]十六进制颜色AndroidAPP程序坞显示颜色值必须使用十六进制颜色,刚开始完全不知道怎么解读0xFFFFFF,百度上也没说出来个123来,最后经过查阅各种资料,解读到:0x十六进制数开头前面两个FF代表透明度后面的跟平常使用的颜色值一样例如0xFFFFFFFF等同于#FFFFFF…

    2022年5月13日
    96
  • eclipse使用maven教程

    eclipse使用maven教程eclipse使用maven教程什么是mavenmaven下载与安装与配置1下载2安装3配置环境变量在eclipse中配置1m2eclipse安装2配置eclipse3创建一个maven项目1项目的结构2Eclipse中maven常用的命3使用maven命令0.什么是maven参考https://www.cnblogs.com/whgk/p

    2022年4月6日
    48
  • mongodb与mysql区别对比

    mongodb与mysql区别对比参考来源mongodb与关系型数据库相比的优缺点与关系型数据库相比,MongoDB的优点:①弱一致性(最终一致),更能保证用户的访问速度:举例来说,在传统的关系型数据库中,一个COUNT类型的操作会锁定数据集,这样可以保证得到“当前”情况下的较精确值。这在某些情况下,例如通过ATM查看账户信息的时候很重要,但对于Wordnik来说,数据是不断更新和增长的,这种“较精确”的保证几乎没有任何…

    2022年6月22日
    66
  • 购物程序「建议收藏」

    购物程序「建议收藏」#-*-coding:utf-8-*-"""CreatedonTueSep1116:35:292018@author:车路历程"&

    2022年8月3日
    8
  • 二阶线性微分方程解的结构(齐次与非齐次)+ 常数变易法 | 高阶微分方程(二)

    二阶线性微分方程解的结构(齐次与非齐次)+ 常数变易法 | 高阶微分方程(二)一 线性微分方程的解的结构 1 1 二阶齐次线性方程 y P x y Q x y 0 1 y P x y Q x y 0 tag 1 y P x y Q x y 0 1 定理 1 如果函数 y1 x y 1 x y1 x 与 y2 x y 2 x y2 x 是方程 1 的两个解 那么 y C1y1 x C2y2 x 2 y C 1y 1 x C 2y 2 x tag 2 y C1 y1 x C2 y2 x 2 也是方程 1 的解 其中 C1 C2C 1 C 2C

    2025年6月22日
    4

发表回复

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

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