有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将userinput中的许多变量放入数组列表

我正在编写一个程序,它将要求用户输入一些条目,如姓名等,然后将所有这些条目存储在arraylist的一个位置。换句话说,变量(姓名、姓氏、电话)将添加到arraylist的位置0

我发现的困难在于获取所有这些变量并将它们存储到数组列表的位置。有人能帮我吗?谢谢

public class Loans
{
    ArrayList lns = new ArrayList();

    void LoansInput ()
    {
           // Add New Loan Button  

           // Requesting DVD ID
                    String dvdid;
                    dvdid =JOptionPane.showInputDialog("Enter DVD ID Number");

            // Requesting Member Name & Surname
                    String namesurname;
                    namesurname = JOptionPane.showInputDialog("Client Name & Surname");

            // Requesting Member ID Number
                    String mid;
                    mid =JOptionPane.showInputDialog("Client ID Number");

            // Requesting Member ID Number
                    String telephone;
                    telephone =JOptionPane.showInputDialog("Client Telephone Number");

            // Requesting Rental Date
                    String rentaldate;
                    rentaldate =JOptionPane.showInputDialog("Rental Date (DD-MM-YY)");                                    

            // Requesting Return Date
                    String returndate;
                    returndate =JOptionPane.showInputDialog("Return Date (DD-MM-YY)");

为了得到所有这些变量并将它们放在一个位置的Arraylist lns中,我应该在这里添加什么?(并非每个条目都位于不同的位置)


共 (5) 个答案

  1. # 1 楼答案

    一个好的方法是创建一个User对象,例如(不包括getter和setter)

    public class User {
       private Stringg surname;
       private String memberId;
       private String telephone;
       // etc. 
    }
    

    然后可以存储User对象的列表

    List<User> users = new LinkedList<User>();
    

    您可以创建用户对象,并根据您获得的输入进行填充,例如

    User user = new User();
    String surname = JOptionPane.showInputDialog("...");
    user.setSurname(surname);
    
    users.add(user);
    
  2. # 2 楼答案

    你应该为这些变量创建类,比如说DVD,然后你可以在你的代码中使用它,比如

    List<DVD> arrayList = new ArrayList<DVD>(); //always use a raw types (List)
    DVD dvd = new DVD();
    dvd.setId(JOPtionPane.showInputDialog("Enter ID");
    //and so on, when you finish, just put the object in the array
    arrayList.add(dvd);
    

    DVD对象应该覆盖hashCode和equals方法,这样您就可以在ArrayList中有效地搜索DVD对象

  3. # 3 楼答案

    首先创建DVD对象,如下所示

    class DVD {
    
        private int dvdId;
        .
        .
        .
        .
    
        //now set getter setters
        public void setdvdId(int dvdId) {
        this.dvdId = dvdId
        }
    
        public int getdvdId() {
        return dvdId;
        }
    
        // similarly for all field
    }
    

    然后在arraylist中使用DVD对象,如下所示

    class MyProgram {
        public static void main (String args[]) {
    
    
        List<DVD> arrayList = new ArrayList<DVD>();
    
        DVD myDVD = new DVD();
        myDVD.setdvdId(Integer.parseInt(JOPtionPane.showInputDialog("Enter ID")));
        // similarly add other
        .
        .
        .
        .
        .
    
        arrayList.add(myDVD)
    
        // similarly add other
        }
    }
    

    祝你好运

  4. # 4 楼答案

    用你需要的所有变量包装一个类,为每个类包装对象,并将它们放入ArrayList。我想它解决了你的问题

  5. # 5 楼答案

    为什么不创建一个包含所有所需字段的类Dvd,并将其存储在ArrayList中