簡體   English   中英

我如何在對象數組上顯示所有數據

[英]How can i display all my data on array on object

我想創建一種在我制作的對象數組上顯示所有數據的方法。 我設法通過這里的人們的幫助來創建特定的搜索。 我可以重用他的代碼嗎? 怎么樣? 我要創建的方法在最后一部分。 我如何在對象數組上顯示所有數據

import java.util.Dictionary;
import java.util.Hashtable;
import java.util.Scanner;

public class TestMouse {

    private static Dictionary<String, Mouse> mouseList = new Hashtable<String, Mouse>(); 

    public static void main(String[] args) {

        menu();
    }

    @SuppressWarnings("resource")
    public static void menu() {
        Scanner input = new Scanner(System.in);

        int choice;
        do {
            System.out.println("CMPE 325 Student Record Holder System");
            System.out.println("--------------------------------");
            System.out.println("1.Add Student");
            System.out.println("2.View Records");
            System.out.println("3.Update Students");
            System.out.println("4.Get Average");
            System.out.println("5.Exit");
            System.out.println();
            System.out.println("--------------------------------");
            System.out.print("Enter your choice: ");
            choice = input.nextInt();

            switch (choice) {

            case 1:
                record();
                break;
            case 2:
                display();
                // display();
                break;
            case 3:
                menu();
                // update();
                // break();
            case 4:
                menu();
                // average();
                // break();
            case 5:
                break;
            default:
                continue;
            }

        } while (choice != 5);
        System.out.println();
        System.out.println("Good-Bye");

    }

    // end of menu(); method.
    // ------------------------------------------------------------
    @SuppressWarnings({ "resource", "unused" })
    public static void record() {

        Scanner Input = new Scanner(System.in);

        int total;

        System.out.println("How many students you are going to input? ");
        total = Input.nextInt();

        Mouse[] keyboard = new Mouse[total];

        for (int index = 0; index < total; index++) {
            String space;

            keyboard[index] = new Mouse();

            System.out.printf("Student[%d]", index + 1);

            System.out.println();

            System.out.println("");
            space = Input.nextLine();

            System.out.println("ID Number: ");
            keyboard[index].setId(Input.nextLine());

            System.out.println("First Name: ");
            keyboard[index].setFirstName(Input.nextLine());

            System.out.println("Middle Name: ");
            keyboard[index].setMiddleName(Input.nextLine());

            System.out.println("Last Name: ");
            keyboard[index].setLastName(Input.nextLine());

            System.out.println("Degree: ");
            keyboard[index].setDegName(Input.nextLine());

            System.out.println("Year Level: ");
            keyboard[index].setYear(Input.nextInt());

            //Save current object
            mouseList.put(keyboard[index].getId(), keyboard[index]);
        }

        for (int index2 = 0; index2 < total; index2++) {
            System.out.printf("Student[%d]", index2 + 1);
            System.out.println();
            System.out.println("ID Number:" + keyboard[index2].getId());
            System.out.println("Name:" + keyboard[index2].getFirstName() + " "
                    + keyboard[index2].getMiddleName() + " "
                    + keyboard[index2].getLastName());
            System.out.println("Degree:" + keyboard[index2].getDegName());
            System.out.println("Year Level:" + keyboard[index2].getYear());
        }
    }

    public static void specific() {
        String id = "";
        System.out.println("Enter an Id Number");
        Scanner Input = new Scanner(System.in);
        id = Input.nextLine();

        Mouse mouse = mouseList.get(id);
        if (mouse != null) {
            System.out.println();
            System.out.println("ID Number:" + mouse.getId());
            System.out.println("Name:" + mouse.getFirstName() + " "
                    + mouse.getMiddleName() + " "
                    + mouse.getLastName());
            System.out.println("Degree:" + mouse.getDegName());
            System.out.println("Year Level:" + mouse.getYear());
        }
    }
    @SuppressWarnings("resource")
    public static void display(){
        Scanner input = new Scanner(System.in);

        int choice;


            System.out.println("--------------------------------");
            System.out.println("1.View List");
            System.out.println("2.View Specific Record");
            System.out.println("3.Exit");
            System.out.println();
            System.out.println("--------------------------------");
            System.out.print("Enter your choice: ");
            choice = input.nextInt();

            switch (choice) {

            case 1:
                displayall();
                break;
            case 2:
                specific();
                break;
            case 3:
                menu();
                break;

            }
}

 this part is the one im talking about. i hope u can help me
 public static void displayall(){

        String id = "";
        System.out.println("Enter an Id Number");
        Scanner Input = new Scanner(System.in);
        id = Input.nextLine();

        Mouse mouse = mouseList.get(id);
        if (mouse != null) {
            System.out.println();
            System.out.println("ID Number:" + mouse.getId());
            System.out.println("Name:" + mouse.getFirstName() + " "
                    + mouse.getMiddleName() + " "
                    + mouse.getLastName());
            System.out.println("Degree:" + mouse.getDegName());
            System.out.println("Year Level:" + mouse.getYear());
        }
    }
}             

因為您使用的是舊版Dictionary接口 ,所以這有點煩人,但是可以這樣做。

您要做的是創建元素的Enumeration ,然后對其進行迭代。 通過調用Dictionary#elements() ,或更具體地說,通過mouseList.elements()提供實例。

然后,按照Enumeration規定對其進行迭代

如果Mouse也覆蓋toString() ,實際上會容易得多,因為這是打印這類復雜對象的最佳方法。

最后,您在該方法中進行了許多不必要的調用-您不需要關心ID或類似的東西。 您也不需要檢查null ,因為如果它不在元素集中,則不會在Enumeration

如果您想更現代一點...那么請使用Map代替。 Hashtable已經使用了Map界面,因此您不需要更改具體對象(盡管我會強烈推薦)。 遍歷Map的元素將成為對Map#entrySet()的調用,需要進行更多工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM