JavaSE的數(shù)組增刪查改操作(新手進(jìn))

首先我們現(xiàn)在這里放一串簡(jiǎn)單的數(shù)組代碼

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("請(qǐng)輸入姓名:");
        String name = sc.next();
        setName(name);
        System.out.println("請(qǐng)輸入性別:");
        while(true){
        char sex = sc.next().charAt(0);
        if(sex == '男'||sex == '女'){
            setSex(sex);
            break;
        }
        else{
            System.out.println("性別格式錯(cuò)誤請(qǐng)重新輸入性別:");
        }
        }
        System.out.println("請(qǐng)輸入年齡:");
        int age=sc.nextInt();
        setAge(age);
        System.out.println("請(qǐng)輸入電話號(hào)碼:");
        String Phonenum=sc.next();
        setPhonenumber(Phonenum);
        System.out.println("請(qǐng)輸入QQ:");
        long qq=sc.nextLong();
        setQq(qq);
        System.out.println("請(qǐng)輸入地址:");
        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("請(qǐng)輸入要?jiǎng)h除聯(lián)系人的姓名");
        String name = scanner.next();
        System.out.println("確認(rèn)要?jiǎng)h除該聯(lián)系人携悯?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("已刪除該聯(lián)系人");
        }
        else if(yes_or_no.equals("N")){
        }
    }
    public void edit(){
        Scanner scanner = new Scanner(System.in);
        System.out.println("請(qǐng)輸入要編輯的聯(lián)系人的姓名");
        String name = scanner.next();
        for(int i=0;phonenum[i][0]!=null;i++){
            if(phonenum[i][0].equals(name)){
                System.out.println("請(qǐng)輸入修改的內(nèi)容:1.姓名 2.性別 3.年齡 4.電話號(hào)碼 5.qq 6.地址");
                int edit = scanner.nextInt();
                switch(edit){
                case 1:{
                    System.out.println("請(qǐng)重新輸入聯(lián)系人的姓名");
                    String nameedit=scanner.next();
                    setName(nameedit);
                    phonenum[i][0] = getName();
                };break;
                case 2:{
                    System.out.println("請(qǐng)重新輸入聯(lián)系人的性別");
                    while(true){
                        char sexedit=scanner.next().charAt(0);
                        if(sexedit=='男'||sexedit=='女'){
                            setSex(sexedit);
                            phonenum[i][1] = String.valueOf(getSex());
                            break;
                            }
                        else{
                            System.out.println("輸入格式有誤雳灾,請(qǐng)重新輸入:");
                        }
                    }
                };break;
                case 3:{
                    System.out.println("請(qǐng)重新輸入聯(lián)系人的年齡");
                    int ageedit=scanner.nextInt();
                    setAge(ageedit);
                    phonenum[i][2] = String.valueOf(getAge());
                };break;
                case 4:{
                    System.out.println("請(qǐng)重新輸入聯(lián)系人的電話號(hào)碼");
                    String phonenumberedit=scanner.next();
                    setPhonenumber(phonenumberedit);
                    phonenum[i][3] = getPhonenumber();
                };break;
                case 5:{
                    System.out.println("請(qǐng)重新輸入聯(lián)系的QQ");
                    long qqedit=scanner.nextLong();
                    setQq(qqedit);
                    phonenum[i][4] = String.valueOf(getQq());
                };break;
                case 6:{
                    System.out.println("請(qǐng)重新輸入聯(lián)系人的地址");
                    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("請(qǐng)輸入要查找的聯(lián)系人的姓名");
        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("對(duì)不起漠酿,您所輸入的用戶不存在");
            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("--------------電話本管理系統(tǒng)--------------");
        System.out.println("1.添加 2.刪除 3.修改 4.查詢所有 5.根據(jù)姓名查詢 0.退出");
        System.out.println("--------------電話本管理系統(tǒng)--------------");
        System.out.println("請(qǐng)選擇業(yè)務(wù):");
        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;
            }
        }
        }
    }
}

大家看到了代碼以后冯凹,可能就知道是什么東西了谎亩,沒錯(cuò),我們通過數(shù)組來存儲(chǔ)聯(lián)系人信息宇姚,當(dāng)然這里的代碼是我最初的代碼匈庭,沒有經(jīng)過優(yōu)化,所以有很多代碼相對(duì)是冗余的浑劳,浪費(fèi)了資源阱持,因筆者優(yōu)化后的代碼不在自己電腦上,所以就先發(fā)布一個(gè)復(fù)雜版本分享給大家魔熏,代碼的優(yōu)化就交給大家了衷咽。
首先我們需要定義一個(gè)數(shù)組鸽扁,這里考慮到查詢的節(jié)省時(shí)間,將數(shù)組定義為二維數(shù)組镶骗,定義100行6列桶现,基本上來說是夠用的,那么我們來分析一下鼎姊,如果說我們定義第一列全部都是姓名的話骡和,那么在進(jìn)行查詢操作的時(shí)候只需要全部查詢第一行就好了。
這樣我們來簡(jiǎn)單的說一下剩下的幾個(gè)方法的定義吧相寇,首先getXXX()和setXXX()方法慰于,用來設(shè)置我們要存放的數(shù)據(jù),然后定義了幾個(gè)方法唤衫,包括添加婆赠、修改、刪除战授、查詢页藻、查詢所有,通過創(chuàng)建對(duì)象調(diào)用不同的方法植兰,即可實(shí)現(xiàn)不同的功能份帐,目前優(yōu)化的只有年齡的輸入可以進(jìn)行格式識(shí)別,其他的成員變量沒有添加格式的判斷楣导。
因本人水平有限废境,后續(xù)還會(huì)不斷完善,謝謝大家的瀏覽

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末筒繁,一起剝皮案震驚了整個(gè)濱河市噩凹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌毡咏,老刑警劉巖驮宴,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異呕缭,居然都是意外死亡堵泽,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門恢总,熙熙樓的掌柜王于貴愁眉苦臉地迎上來迎罗,“玉大人,你說我怎么就攤上這事片仿∥瓢玻” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)厢岂。 經(jīng)常有香客問我光督,道長(zhǎng),這世上最難降的妖魔是什么塔粒? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任可帽,我火速辦了婚禮,結(jié)果婚禮上窗怒,老公的妹妹穿的比我還像新娘映跟。我一直安慰自己,他們只是感情好扬虚,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布努隙。 她就那樣靜靜地躺著,像睡著了一般辜昵。 火紅的嫁衣襯著肌膚如雪荸镊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天堪置,我揣著相機(jī)與錄音躬存,去河邊找鬼。 笑死舀锨,一個(gè)胖子當(dāng)著我的面吹牛岭洲,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播坎匿,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼盾剩,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了替蔬?” 一聲冷哼從身側(cè)響起告私,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎承桥,沒想到半個(gè)月后驻粟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡凶异,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年蜀撑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片唠帝。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡屯掖,死狀恐怖玄柏,靈堂內(nèi)的尸體忽然破棺而出襟衰,到底是詐尸還是另有隱情,我是刑警寧澤粪摘,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布瀑晒,位于F島的核電站绍坝,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏苔悦。R本人自食惡果不足惜轩褐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望玖详。 院中可真熱鬧把介,春花似錦、人聲如沸蟋座。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽向臀。三九已至巢墅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間券膀,已是汗流浹背君纫。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留芹彬,地道東北人蓄髓。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像舒帮,于是被迫代替她去往敵國(guó)和親双吆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容