【问题标题】:Putting a number of variables from a userinput into an array list将用户输入中的多个变量放入数组列表中
【发布时间】:2012-03-03 14:48:33
【问题描述】:

我正在编写一个程序,它会要求用户输入一些条目,如姓名、姓氏等,然后将所有这些条目存储在数组列表的一个位置。换句话说,变量(姓名、姓氏、电话)将被添加到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 中,我应该在此处添加什么? (不是每个条目都在不同的位置)

【问题讨论】:

    标签: java variables arraylist


    【解决方案1】:

    首先创建 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
        }
    }
    

    祝你好运!!!

    【讨论】:

    • public void setdvdId(int dvdId) { this.dvdId = dvdId; } 它告诉不兼容的类型
    • 查看我更新的答案...请注意,您还需要添加 try.. catch now,就好像您不输入数字一样,那么该语句将引发异常...
    • 它仍然在 DVD Class Line 10 this.dvdId = dvdId 中显示不兼容的类型@
    • goshhh... 因为我错误地将 dvdId 作为字符串.. 现在看看我更新的答案... 它应该可以工作
    • 我应该如何打印数组列表呢?因为当我尝试输出是 [DVD@ca64df]
    【解决方案2】:

    用你需要的所有变量创建一个类,并为每个你创建一个对象并将它们放入 ArrayList。我认为它可以解决您的问题。

    【讨论】:

      【解决方案3】:

      一个好的方法是创建一个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);
      

      【讨论】:

        【解决方案4】:

        你肯定应该为这些变量创建类,比如说 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 对象

        【讨论】:

          【解决方案5】:

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

          【讨论】:

          • 您的意思是我创建了一个类 DVD 并要求用户在其中输入数据?但是我将如何将它们放入数组列表中?
          猜你喜欢
          • 1970-01-01
          • 2014-11-18
          • 1970-01-01
          • 2017-09-19
          • 1970-01-01
          • 1970-01-01
          • 2021-03-21
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多