【问题标题】:Array to ArrayList [closed]数组到 ArrayList [关闭]
【发布时间】:2015-02-26 04:53:46
【问题描述】:

我正在努力学习“测试”课程。我收到一个错误(Course 类型中的方法 addStudent(ArrayList) 不适用于参数 (String)),我不明白为什么。

这里是主类:

public class Course {

    private String courseName;
    private ArrayList<String> students = new ArrayList<>();
    private int numberOfStudents;

    public Course(String courseName) {
        this.courseName = courseName;
    }

    public void addStudent(ArrayList students) {
        this.students = students;
        students.add(students);
        numberOfStudents ++;
    }

    public ArrayList getStudents() {
        return students;
    }

    public int getNumberOfStudents() {
        return numberOfStudents;
    }

    public String getCourseName() {
        return courseName;
    }

    public void dropStudents(ArrayList students) {
        this.students = students;
        students.remove(students);
        numberOfStudents --;
    }

}

那么这就是我目前所拥有的 TestCourse 课程:

public class TestCourse {

    public static void main(String[] args) {
        Course course1 = new Course("Data Structures");
        Course course2 = new Course("Database Systems");

        course1.addStudent("Peter Jones");
    }

}

我们不胜感激。

【问题讨论】:

  • "Peter Jones"String,而不是 ArrayList...我想您想更改您的 public void addStudent(ArrayList students) { 方法以采用 String 并将 String 添加到预先存在的ArrayList...
  • students.add(students); 似乎是一件很奇怪的事情。您在此处向自身添加 ArrayList。该方法参数可能不应该是ArrayList,而是String

标签: java arrays class arraylist


【解决方案1】:

问题出在这里:

 public void addStudent(ArrayList students) {
        this.students = students;
        students.add(students);
        numberOfStudents ++;
 }

将参数从 ArrayList 更改为 String。

 public void addStudent(String studentName) {
        students.add(studentName);
        numberOfStudents ++;
 }

您的ArrayList&lt;String&gt; students 拥有一组学生。在您的 addStudent 方法中,您将为每个方法调用添加一个学生。因此,addStudent(String studentName)

【讨论】:

  • 如何向 ArrayList 添加信息?
  • @Monocyte 您只需使用arraylist 的方法-arraylistName.add(item_to_be_added) 即可将项目添加到arraylist。就这么直截了当。
【解决方案2】:

您的方法参数需要ArrayList,但您将String 作为参数传递。将方法参数改为String,如下图。

public void addStudent(String studentName) {
        students.add(studentName);
        numberOfStudents ++;
    }

【讨论】:

    【解决方案3】:

    您正在尝试传递一个数组,而您只需要传递一个字符串..

    public void addStudent(String studentName)
    {
        students.add(studentName);
        numberOfStudents++;
    }
    

    如果我是你,我会为学生开设另一门课程,因为我觉得你将拥有必须为学生存储的其他信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-04
      • 2012-12-26
      • 2013-11-09
      • 2016-08-01
      • 1970-01-01
      • 2016-01-17
      相关资源
      最近更新 更多