以前写的数组的增删改查,发出来希望能帮助初学者。

package com.wei.domain;

import java.util.InputMismatchException;
import java.util.Scanner;

public class DataManger {
    public static void main(String[] args) {


        DataManger dm=new DataManger();
        Scanner sc=new Scanner(System.in);
        int input;
        int[] a=null;
        int n,k;
        lo://循环标号
        while(true){
            dm.notice();
            System.out.println("请选择您要进行的操作:");
            input = sc.nextInt();
            switch (input){
                case 1:
                    //插入数据 插入新的数据,留下来一个数据空地 后面进行增添数据
                    a= dm.insertData();
                    System.out.println("插入的数据为:");
                    //显示数据
                    dm.queryData(a, a.length-1);//留一个数据空间
                    break;
                case 2:
                    //显示所有数据,如果没有数据,查询为零
                    if (a!=null){
                        System.out.println("数组元素为:");
                        if (a[a.length-1]==0){//数组最后一个元素为0 就不显示最后一个元素,还没有添加
                            dm.queryData(a, a.length-1);
                        }else{
                            dm.queryData(a, a.length);
                        }
                    }else{
                        System.out.println("数组还没有元素!请重新操作!");
                    }

                    break;
                case 3:
                    //在指定位置上插入数据
                    if (a!=null){
                        System.out.println("请输入要插入的数字:");
                        try{
                            n=sc.nextInt();
                            System.out.println("请输入要插入的位置:");
                            k=sc.nextInt();

                            dm.insertAtArray(a,n,k);
                            System.out.println("插入成功,新数据为:");
                            dm.queryData(a, a.length);
                        }catch (InputMismatchException e){
                            System.out.println("输入的数据格式有误,不能有非数字!");
                            sc.next();
                        }


                    }else{
                        System.out.println("还没有在数组中插入数据,请重新选择操作");
                    }
                    break;
                case 4:
                    //查询能被3整除的数字,没有插满就进行查询该方法,会出现一个0,但是没有解决掉!!!!
                   if(a!=null){
                       System.out.println("能被3整除的数字为:");
                       if (a.length==10){
                           dm.divThree(a);
                       }else{
                           for (int i=0;i< a.length-1;i++){
                               if (a[i]%3==0){
                                   System.out.print(a[i]+"\t");
                               }

                           }
                           System.out.println();
                       }
                   }else{
                       System.out.println("还没有在数组中插入数据,请重新选择操作");
                   }
                    break;
                case 5:
                    System.out.println("已经退出,感谢你的使用!");
                    break lo;
                    //退出

            }
        }
    }
    //准备一个数组,长度为10 向其中插入9个数据
    public int[] insertData(){
        int[] a=new int[10];
        Scanner sc=new Scanner(System.in);
        //少接收一个数据,为在指定位置处插入数据做准备,因为数组的长度是固定的,想要插入数据就要留一定空间
        for (int i=0;i<a.length-1;i++){
            System.out.println("请输入第"+(i+1)+"个数据:");
           try{
               a[i]=sc.nextInt();//为了保证插入的数据时整数,而不是其他的类型,要进行过滤
           }catch (InputMismatchException e){
               System.out.println("输入的数据格式有错误,只能输入整数!");
               sc.next();
           }

        }
        return a;
    }

    //接收数据,插入一个数字
    //n是要插入的数据,k是要插入的位置,从0开始
    public void insertAtArray(int[] a,int n,int k){


        for (int i=a.length-1;i>k;i--){
            a[i]=a[i-1];//数组元素往后移动,然后把插入的位置挪出空地来,然后插入新的数据!
        }

        a[k]=n;//地方挪出拉了,进行插入新数据的操作!
    }
    //查看展示数组数据
    public void queryData(int[] a,int length){
        for (int i=0;i<length;i++){
            System.out.print(a[i]+" ");
        }
        System.out.println();
    }

    //输出能3整除的数字
    public void divThree(int[] a){//如果直接插入9个数字,还有一个数字没有插入,那么就开始执行该方法时,会有一个最后的0出来
        //防止这个事情发生,必须要判断数组是否完整
        for (int i=0;i< a.length;i++){
           if (a[i]%3==0){
               System.out.print(a[i]+"\t");
           }

        }
        System.out.println();
    }
    //展示信息方法
    public void notice(){
        System.out.println("*******************************************");
        System.out.println("              1.插入数据");
        System.out.println("              2.显示所有的数据");
        System.out.println("              3.在指定位置处插入数据");
        System.out.println("              4.查询能被3整除的数据");
        System.out.println("              5.退出");
        System.out.println("********************************************");
    }
}

在控制台输出的形式是这样的:

希望初学者以此练练手!

猜你喜欢

转载自blog.csdn.net/qq_35207086/article/details/115002702