簡體   English   中英

如何獲取用戶輸入並將其成功存儲在 ArrayList 中? 那么我如何讓我的程序向我顯示 ArrayList 中的所有元素?

[英]How do i take user input and store it successfully in an ArrayList? Then how do i get my program to show me all the elements in the ArrayList?

我想要一個程序,將有關人員的詳細信息存儲在數組列表中。 我想提示用戶輸入並將每個結果存儲在數組列表中。 我該怎么做呢? 之后如何查看存儲在數組列表中的所有內容? 它不需要反映我擁有的代碼,只是似乎無法弄清楚我如何擁有一個帶有 setter 和 getter 的類,然后創建一個新的主類提示用戶進行輸入並將該輸入存儲在數組列表中。

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class salesPersonMain {


    public static void main(String[] args) throws InputValidationException {

        Scanner input = new Scanner(System.in);
        //ask user for input and get input
        System.out.println("Enter id: ");
        int id = Integer.parseInt(input.nextLine());

        System.out.println("Enter first name:");
        String firstName = input.nextLine();

        System.out.println("Enter last name:");
        String lastName = input.nextLine();
        //save in array list
        List<salesPerson> sPerson = new ArrayList<salesPerson>();

        sPerson.add(new salesPerson(id, firstName, lastName));

    }
}

I have another class for the salesperson:

import java.util.ArrayList;

public class salesPerson<sPerson> {
    //create variables for sales person
    private int id;
    private String firstName;
    private String lastName;
 public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) throws InputValidationException {
        if (firstName.matches("\\p{Upper}(\\p{Lower}){2,20}")) {
        } else {
            throw new InputValidationException();
        }
        {
            this.firstName = firstName;
        }
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName)throws InputValidationException {
        if (lastName.matches("\\p{Upper}(\\p{Lower}){2,20}")) {
        } else {
            throw new InputValidationException();
        }
        {
            this.lastName = lastName;
        }
    }
 //creates array of salespeople
        private ArrayList<sPerson> salesPerson;

        public salesPerson() {
            salesPerson = new ArrayList<>();
        }
        //adds new salesperson to the array
        public void add(salesPerson sPerson) {
            salesPerson.add((sPerson) sPerson);
        }

您需要一個循環來重復獲取輸入:

public static void main(String[] args) throws InputValidationException {

    Scanner input = new Scanner(System.in);
    List<salesPerson> sPerson = new ArrayList<salesPerson>();

    // Loop forever
    // Need a way to break the loop. One option: have the user
    // input "q" for quit
    while (true) {

        //ask user for input and get input
        System.out.println("Enter id ('q' to quit): ");
        String temp = input.nextLine();
        if (temp.equals("q")) break;

        int id = Integer.parseInt(temp);
           // This should be in try/catch in case parseInt fails

        System.out.println("Enter first name:");
        String firstName = input.nextLine();

        System.out.println("Enter last name:");
        String lastName = input.nextLine();

        //save in array list
        sPerson.add(new salesPerson(id, firstName, lastName));
    }

    // Print the list
    sPerson.forEach(System.out::println);
}

所以它正確打印出來,你需要覆蓋salesPerson類中的toString函數:

public class salesPerson {
    // Other code here.....

    @Override
    public String toString() {
        return id + "," + firstName + " " + lastName;
    }
}

暫無
暫無

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

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