Java实现数组的生成删去替换排序

数组生成、删去、替换、冒泡排序



1. 内容介绍

键盘生成数组,选择位置替换数组值,选择位置删去数组值,冒泡排序。


2.思路解析

使用重载、冒泡排序。


3. 代码实现

主函数

package com.xiaojian;

import com.xiaojian.util.ArrayUtil;

import java.util.Scanner;

/**
 * 作业:
 * 1. 替换数组:在数组指定索引处替换新值
 * 2. 减数组:在数组指定索引处移除该值
 * 3. 排序数组:将数组从小到大排序返回
 */
public class Work {

    public static void main(String[] args) {
        ;
        Scanner scan = new Scanner(System.in);
        //生成数组
        int [] arr=ArrayUtil.newArray();
        while (true){
            System.out.println("请选择 0 打印数组  1选择替换数组  2选择减去数组  3数组排序  4退出");
            //请选择 0 打印数组  1选择替换数组  2选择减去数组  3数组排序
            int flag = scan.nextInt();
            if (flag==0){
                //打印数组
                System.out.println("-----打印数组-----");
                ArrayUtil.printArray(arr);
                System.out.println("请选择接下来的操作,请选择 0 打印数组  1选择替换数组  2选择减去数组  3数组排序  4退出");
                flag = scan.nextInt();
            }
            if (flag==1){
                //替换数组
                System.out.println("-----替换数组-----");
                System.out.print("请输入替换数序号:");
                int index = scan.nextInt();
                System.out.print("请输入替换后的值:");
                int goal = scan.nextInt();
                int[] outcome = ArrayUtil.newArray(arr ,index,goal);
                ArrayUtil.printArray(arr);
                System.out.println("请选择接下来的操作,请选择 0 打印数组  1选择替换数组  2选择减去数组  3数组排序  4退出");
                flag = scan.nextInt();
            }
            if (flag==2){
                System.out.println("-----减去数组-----");
                //减去数组
                System.out.print("请输入减去数序号:");
                int index = scan.nextInt();
                arr = ArrayUtil.newArray(arr , index);
                ArrayUtil.printArray(arr);
                System.out.println("请选择接下来的操作,请选择 0 打印数组  1选择替换数组  2选择减去数组  3数组排序  4退出");
                flag = scan.nextInt();
            }
            if (flag==3){
                System.out.println("-----冒泡排序从小到大-----");
                ArrayUtil.printArray(ArrayUtil.sort1Array(arr ));
                //冒泡排序
                System.out.println("-----冒泡排序从大到小-----");
                ArrayUtil.printArray(ArrayUtil.sort2Array(arr ));
                System.out.println("请选择接下来的操作,请选择 0 打印数组  1选择替换数组  2选择减去数组  3数组排序  4退出");
                flag = scan.nextInt();
            }
            if (flag==4){
                break;
            }
        }

    }
}

方法

package com.xiaojian.util;

import java.util.Scanner;

public class ArrayUtil {

    public static int[] newArray() {
        Scanner scan = new Scanner(System.in);
        System.out.print("请输出生成几位数组:");
        int num = scan.nextInt();
        int[] arr = new  int[num];
        System.out.print("请输入数组值并以空格隔开:");
        for (int i = 0;i < num; i++){
            arr[i]= scan.nextInt();
        }
        return arr;
    }
    /**
     * 打印数组
     * @param arr
     */
    public static void printArray(int[] arr) {
        String arrStr = "[";
        for (int i = 0;i<arr.length;i++){
            if (i != arr.length-1){
                arrStr += arr[i] + ",";
            }else {
                arrStr += arr[i] + "]";
            }
        }
        System.out.println(arrStr);
    }

    /**
     * 替换数组:在数组指定索引处替换新值
     * @param arr
     * @param index
     * @param goal
     * @return
     */
    public static int[] newArray(int[] arr, int index, int goal){
        arr[index]=goal;
        return arr;
    }


    /**
     * 减数组:在数组指定索引处移除该值
     * @param arr
     * @param index
     * @return
     */
    public static int[] newArray(int[] arr, int index){
        int[] temp = new int[arr.length-1];
        for (int i =0,x=0;x<arr.length-1;x++,i++){
            if (index==i){
                i++;
                temp[index]=arr[i];
                i++;
                x++;
            }
            temp[x]=arr[i];
        }
        return temp;
    }

    //排序数组:将数组从小到大排序返回

    /**
     * 冒泡排序
     * @param arr
     * @return
     */
    public static int[] sort1Array(int[] arr){
        for (int x=arr.length;x>1;x--){
            for (int i=0;i<x-1;i++){
                if (arr[i]>arr[i+1]){
                    int a = arr[i];
                    arr[i] = arr[i+1];
                    arr[i+1]=a;
                }
            }
        }
        return arr;
    }

    /**
     * 冒泡排序
     * @param arr
     * @return
     */
    public static int[] sort2Array(int[] arr){
        for (int x=arr.length;x>1;x--){
            for (int i=0;i<x-1;i++){
                if (arr[i]<arr[i+1]){
                    int a = arr[i];
                    arr[i] = arr[i+1];
                    arr[i+1]=a;
                }
            }
        }
        return arr;
    }
}

4. 运行

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值