2014-01-18 81 views
0

我想创建一个基于ArrayList的用户输入的应用程序基础。但有一些问题需要先了解。具有多个参数的ArrayList(用户输入)

PS:我想在进入用户输入之前先用正常值尝试。这只是一个粗略的草图,让我明白如何在arraylist中使用多个参数。

这是学生

package test; 

import java.text.SimpleDateFormat; 
import java.util.Date; 

public class Student { 
    private String name; 
    private Date DOB; 
    private String[] friend; 
    private String school; 

    public Student(String name, Date DOB, String[] friend, String school) { 
     this.name = name; 
     this.DOB = DOB; 
     this.friend = friend; 
     this.school = school; 

    } 

    public void display() { 
     System.out.println("Name : " + name); 
     SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy"); 
     System.out.println("Released Date : " + df.format(DOB)); 
     System.out.println("Best Friend : " + friend[0] + ", " + friend[1]); 
     System.out.println("Director : " + school); 

    } 

    public String getName() { 
     return name; 
    } 

} 

这是StudentApp

package test; 

import java.util.ArrayList; 

public class StudentApp { 
    private ArrayList<Student> students = new ArrayList<Student>(); 

    public void start() { 
     addStudent(); 
    } 

    public void addStudent() { 
     System.out.println("- Add Student Info -"); 
     students.add(/* Need to ask the user to input their information like their name,DOB,friend,school*/); 
    } 

} 

我怎么能在值添加到ArrayList如果有多个参数需要的? (String,Date,String [],String)。因为当我尝试添加所需要进入students.add正确的参数一定的价值,它会告诉我一个错误说

在ArrayList类型的方法Add(INT,学生)不 适用于参数(字符串,空,字符串,字符串)

回答

0

你所要做的是在列表中添加错误的元素。

名单你studentsStudent列表。正如前面指出的那样,students.add()只接受Student类型的对象。

你将不得不做这样的事情:

System.out.println("- Add Student Info -"); 
String name = ""; //Get name from user 
Date dob = new Date(); //Get DOB from user 
String[] friends = new String[]{"Friend1", "Friend2"}; //Get a list of friends from user 
String school = ""; //Get school from user 

students.add(new Student(name, dob, friends, school)); 
//OR students.add(0, new Student(name, dob, friends, school)); //Replace 0 with any index 
1

您需要在您的ArrayList

students.add(new Student(String, String, String, String)) 
+0

我喜欢你如何张贴你的答案我之前9秒:-)。 – Justin

0

您不能添加多个参数添加Student类的对象到ArrayList,至少不是这种形式。它看起来像你真正想要做的是:

students.add(new Student(/*whatever info*/)); 

如果你真的想在ArrayList多个元素,做这样的事情:

ArrayList<Object[]> list = new ArrayList<>(); // or if you know all of them are Strings, String[] 
list.add(new Object[]{arg1, arg2, arg3, arg4}); 

更好比是创建一个特殊阶层,是这样的:

class Data{ 
    private String[] data; 

    public Data(String s1, String s2, String s3, String s4){ 
     data = {s1, s2, s3, s4}; 
    } 

    public String getElement(int index){ 
     return data[index]; 
    } 
} 

然后,使用这样的:

ArrayList<Data> list = new ArrayList<>(); 
list.add(new Data(arg1, arg2, arg3, arg4)); 
相关问题