美文网首页
JavaSE的数组增删查改操作(新手进)

JavaSE的数组增删查改操作(新手进)

作者: MsterKerrigan | 来源:发表于2017-08-17 15:58 被阅读0次

    首先我们现在这里放一串简单的数组代码

    import java.util.Scanner;
    class Phonenumber {
        private String name;
        private char sex;
        private int age;
        private String phonenumber;
        private long qq;
        private String address;
        private static int row=0;
        private String phonenum[][] = new String[100][6];
        public String getName() {
            return name;
        }
        
        public void setName(String name) {
            this.name = name;
        }
        
        public char getSex() {
            return sex;
        }
        
        public void setSex(char sex) {
            this.sex=sex;
        }
        
        public int getAge() {
            return age;
        }
        
        public void setAge(int age) {
            this.age = age;
        }
        
        public String getPhonenumber() {
            return phonenumber;
        }
        
        public void setPhonenumber(String phonenumber) {
            this.phonenumber = phonenumber;
        }
        
        public long getQq() {
            return qq;
        }
        
        public void setQq(long qq) {
            this.qq = qq;
        }
        
        public String getAddress() {
            return address;
        }
        
        public void setAddress(String address) {
            this.address = address;
        }
        
        public void Name(){
            Scanner sc=new Scanner(System.in);
            System.out.println("请输入姓名:");
            String name = sc.next();
            setName(name);
            System.out.println("请输入性别:");
            while(true){
            char sex = sc.next().charAt(0);
            if(sex == '男'||sex == '女'){
                setSex(sex);
                break;
            }
            else{
                System.out.println("性别格式错误请重新输入性别:");
            }
            }
            System.out.println("请输入年龄:");
            int age=sc.nextInt();
            setAge(age);
            System.out.println("请输入电话号码:");
            String Phonenum=sc.next();
            setPhonenumber(Phonenum);
            System.out.println("请输入QQ:");
            long qq=sc.nextLong();
            setQq(qq);
            System.out.println("请输入地址:");
            String address=sc.next();
            setAddress(address);
        }
        public void add(){
            Name();
            phonenum[row][0] = getName();   
            phonenum[row][1] = String.valueOf(getSex());
            phonenum[row][2] = String.valueOf(getAge());
            phonenum[row][3] = getPhonenumber();
            phonenum[row][4] = String.valueOf(getQq());
            phonenum[row][5] = getAddress();
            row++;
        }
        public void del(){
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入要删除联系人的姓名");
            String name = scanner.next();
            System.out.println("确认要删除该联系人?Y/N?");
            String yes_or_no = scanner.next();
            if(yes_or_no.equals("Y")){
                for(int i=0;phonenum[i][0]!=null;i++){
                    if(i<100){
                        if(phonenum[i][0].equals(name)){
                            for(int j=i;j<99;j++){
                                for(int k=0;k<6;k++){
                                    phonenum[j][k]=phonenum[j+1][k];
                                    phonenum[99][k]=null;
                                }
                            }
                        }
                    }
                    else if(i==99){
                        for(int j=0;j<6;j++){
                            phonenum[99][j] = null;
                        }
                    }
                }
                System.out.println("已删除该联系人");
            }
            else if(yes_or_no.equals("N")){
            }
        }
        public void edit(){
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入要编辑的联系人的姓名");
            String name = scanner.next();
            for(int i=0;phonenum[i][0]!=null;i++){
                if(phonenum[i][0].equals(name)){
                    System.out.println("请输入修改的内容:1.姓名 2.性别 3.年龄 4.电话号码 5.qq 6.地址");
                    int edit = scanner.nextInt();
                    switch(edit){
                    case 1:{
                        System.out.println("请重新输入联系人的姓名");
                        String nameedit=scanner.next();
                        setName(nameedit);
                        phonenum[i][0] = getName();
                    };break;
                    case 2:{
                        System.out.println("请重新输入联系人的性别");
                        while(true){
                            char sexedit=scanner.next().charAt(0);
                            if(sexedit=='男'||sexedit=='女'){
                                setSex(sexedit);
                                phonenum[i][1] = String.valueOf(getSex());
                                break;
                                }
                            else{
                                System.out.println("输入格式有误,请重新输入:");
                            }
                        }
                    };break;
                    case 3:{
                        System.out.println("请重新输入联系人的年龄");
                        int ageedit=scanner.nextInt();
                        setAge(ageedit);
                        phonenum[i][2] = String.valueOf(getAge());
                    };break;
                    case 4:{
                        System.out.println("请重新输入联系人的电话号码");
                        String phonenumberedit=scanner.next();
                        setPhonenumber(phonenumberedit);
                        phonenum[i][3] = getPhonenumber();
                    };break;
                    case 5:{
                        System.out.println("请重新输入联系的QQ");
                        long qqedit=scanner.nextLong();
                        setQq(qqedit);
                        phonenum[i][4] = String.valueOf(getQq());
                    };break;
                    case 6:{
                        System.out.println("请重新输入联系人的地址");
                        String addressedit=scanner.next();
                        setAddress(addressedit);
                        phonenum[i][5] = getAddress();
                    };break;
                    }
                }
            }
        }
        public int bool(boolean b){
            int b1 = 0;
            if(b==true){
                b1=1;
            }
            else if(b==false){
                b1=0;
            }
            return b1;
        }
        public void findname(){
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入要查找的联系人的姓名");
            String name = scanner.next();
            int b1=0;
            int i=0;
            for(i=0;phonenum[i][0]!=null;i++){
                boolean b = phonenum[i][0].equals(name);
                b1=bool(b);
                if(b1==1)break;
            }
            if(b1==1){
                for(int j=0;j<6;j++)
                    System.out.print(phonenum[i][j]+",");
                    System.out.println();
            }   
            else if(b1==0){
                System.out.println("对不起,您所输入的用户不存在");
                System.out.println();
                }
        }
        public void findall(){
            for(int i=0;phonenum[i][0]!=null;i++){
                for(int j=0;j<6;j++){
                    System.out.print(phonenum[i][j]+",");
                }
                System.out.println();
            }
        }
    }
    
    class Testphonenum {
        public static void main(String[] args){
            Scanner s = new Scanner(System.in);
            Phonenumber pn = new Phonenumber();
            while(true){
            System.out.println("--------------电话本管理系统--------------");
            System.out.println("1.添加 2.删除 3.修改 4.查询所有 5.根据姓名查询 0.退出");
            System.out.println("--------------电话本管理系统--------------");
            System.out.println("请选择业务:");
            int num=s.nextInt();
            if(num==0)break;
            else{
                switch(num){
                case 1:pn.add();break;
                case 2:pn.del();break;
                case 3:pn.edit();break;
                case 4:pn.findall();break;
                case 5:pn.findname();break;
                }
            }
            }
        }
    }
    

    大家看到了代码以后,可能就知道是什么东西了,没错,我们通过数组来存储联系人信息,当然这里的代码是我最初的代码,没有经过优化,所以有很多代码相对是冗余的,浪费了资源,因笔者优化后的代码不在自己电脑上,所以就先发布一个复杂版本分享给大家,代码的优化就交给大家了。
    首先我们需要定义一个数组,这里考虑到查询的节省时间,将数组定义为二维数组,定义100行6列,基本上来说是够用的,那么我们来分析一下,如果说我们定义第一列全部都是姓名的话,那么在进行查询操作的时候只需要全部查询第一行就好了。
    这样我们来简单的说一下剩下的几个方法的定义吧,首先getXXX()和setXXX()方法,用来设置我们要存放的数据,然后定义了几个方法,包括添加、修改、删除、查询、查询所有,通过创建对象调用不同的方法,即可实现不同的功能,目前优化的只有年龄的输入可以进行格式识别,其他的成员变量没有添加格式的判断。
    因本人水平有限,后续还会不断完善,谢谢大家的浏览

    相关文章

      网友评论

          本文标题:JavaSE的数组增删查改操作(新手进)

          本文链接:https://www.haomeiwen.com/subject/gqqnrxtx.html