Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将整数添加到我的arraylist?_Java - Fatal编程技术网

Java 如何将整数添加到我的arraylist?

Java 如何将整数添加到我的arraylist?,java,Java,我目前已经设置了代码,以便将学生的姓名和科目添加到我的arraylist中,然后在用户完成后打印。尽管我现在不想添加字符串,但我想添加一个学生编号,我不知道如何进行。我试着用add替换set,用int替换string,但没有成功 这是我的主要代码 import java.util.*; public class StudentData { public static void main(String[] args) { Scanner in = new Sc

我目前已经设置了代码,以便将学生的姓名和科目添加到我的arraylist中,然后在用户完成后打印。尽管我现在不想添加字符串,但我想添加一个学生编号,我不知道如何进行。我试着用add替换set,用int替换string,但没有成功

这是我的主要代码

import java.util.*;

public class StudentData 
{
    public static void main(String[] args) 
    {
        Scanner in = new Scanner(System.in);
        ArrayList<Student> studentList = new ArrayList<Student>();
        String yesNo = "true";
        do
        {
            System.out.println("Enter student's name: ");
            String name = in.next();
            System.out.println("Enter student's subject: ");
            String subject = in.next();
            System.out.println("Enter student's number: "); 
            int number = in.nextInt();
            Student s = new Student(name,subject,number);   
            s.setName(name);
            s.setSubject(subject);
            s.Number.add(number);
            studentList.add(s);


            do
            {   
                System.out.println("Would you like to enter data for another student? Yes/No ");
                yesNo = in.next();
                }
            while (!yesNo.equalsIgnoreCase("YES") && !yesNo.equalsIgnoreCase("NO"));
            }   
        while (yesNo.equalsIgnoreCase("YES"));


        for(int i = 0; i < studentList.size(); i++)
        {
            System.out.println(studentList.get(i).getName());
            System.out.println(studentList.get(i).getSubject());
            }
        }
    }

当您在列表中存储
Student
对象时,您还存储了输入的每个对象的成员变量。因此,不需要采取不同的方法来存储整数

您可以声明您的
private int studentNumber
在学生类中,为其添加一个getter和setter,然后修改构造函数,以便
setStudentNumber(number)的工作方式与设置两个字符串的工作方式相同

然后,要遍历列表,可以使用“增强的for”语法,而不是简单的旧for循环,这意味着:

for (Student s : studentList) {
    System.out.println(s.getName());
    System.out.println(s.getSubject());
    System.out.println(s.getStudentNumber());
}

希望这有帮助,如果您还需要什么,请在下面给我留言。

整数是什么意思?你能再详细说明一下吗?提前感谢看起来你的学生班级没有地方存储学生编号。什么是Number.add?看起来当你创建每个
学生时,你实际上不需要显式调用
s.setName(name)
和其他设置器,因为
学生的构造函数会自动处理这个问题。我很好奇,是否需要有新的ArrayList,或者Integer类不是必需的?谢谢你的回答,但是如果我像
List studentNumbers=new ArrayList()那样设置它对于我也使用它的其他输入不是无效吗?即Strings@Bucco大多数IDE现在标记
newArrayList()
作为一个冗余类型参数,因此它不是真正必要的。@user3050340我稍微误解了您的问题,那么您能澄清一下您希望在列表中存储什么吗?以前我有代码,所以它只存储学生姓名和科目,现在我想将学生编号添加到同一数组中,但是,所以我想在数组中存储一个数字。希望清楚,谢谢。
for (Student s : studentList) {
    System.out.println(s.getName());
    System.out.println(s.getSubject());
    System.out.println(s.getStudentNumber());
}