当前位置: 首页 > 知识库问答 >
问题:

如何打印包含学生姓名和学生id的数组列表?

东方明亮
2023-03-14
public class pro1{
    static ArrayList <String> student = new ArrayList<String>();
    static ArrayList <Integer> id = new ArrayList<Integer>();
    String name;
    int ID;
    public pro1() {
        this.name = "";
        this.ID = 0;
    }
    public pro1(String name, int ID) {
        this.name = name;
        this.ID = ID;
    }
    public boolean addStudent(String name, int ID) {
        student.add(name);
        id.add(ID);
        return true;
    }
    /*@Override
    public String toString() {
        return name + ID;
    }*/
    public static void main(String args[]) {
        pro1 stu = new pro1();
        stu.addStudent("john", 1);
        stu.addStudent("johnny", 2);
        System.out.println(stu);
    }

}

我想使用ArrayList打印出学生的名字和学生的id。但是,我不知道如何做到这一点,因为在这个类中,我只能打印出名字的ArrayList或id的ArrayList。我在想也许使用另一个类来创建一个学生对象,但是我不确定如何做到这一点。

共有3个答案

楚嘉纳
2023-03-14

取消注释并修改您的toString()方法,如下所示。它将同时打印学生和id。

@Override
public String toString() {
    return student.toString() + id.toString();
}

如果你想让学生到Id映射,最好是把它们放在Map集合中。Id作为键,学生姓名作为值。

桂鑫鹏
2023-03-14

循环两个列表。

第一次理智检查:这两个列表大小相同吗?

if( students.size() != ids.size() ) { … Houston, we have a problem }

然后循环。使用一个索引号从两个列表中拉取。

for( int index = 0 ; 
     index < students.size() ; 
     index ++ 
) 
{
    System.out.println( 
        students.get( index ) + 
        " | " + 
        ids.get( index ) 
    ) ;
}

面向对象的方法是定义一个类。该类将有两个成员字段,名称和特定学生的id。

然后创建一个方法,用所需的输出输出一个字符串

所有这些在Stack Overflow上已经讨论过很多次了。所以搜索以了解更多。例如:创建简单的学生类和如何在Java中正确覆盖toString()?

宣原
2023-03-14

好问题,我认为最好的解决办法是像你想的那样创建一个学生对象!

    public static class Student {

        private final String name;

        private final int id;

        public Student(String name, int id) {
            this.name = name;
            this.id = id;
        }

        @Override
        public String toString() {
            return String.format("name=%s, id=%s", name, id);
        }
    }

    public static class School {

        private final List<Student> students;

        public School(List<Student> students) {
            this.students = students;
        }

        public void add(Student student) {
            students.add(student);
        }

        public List<Student> getStudents() {
            return students;
        }
    }

    public static void main(String... args) {
        School school = new School(new ArrayList<>());

        school.add(new Student("jason", 1));
        school.add(new Student("jonny", 2));

        school.getStudents().forEach(System.out::println);
    }
 类似资料:
  • 我想在每门课程中获得最高分,包括该课程的标题和参加该课程考试的学生姓名。我有这些表格,第一个学生 课程表 我还做了一张表格,让学生在课程考试中通过分数与课程联系起来 那我怎么能质疑呢。

  • 我有 3 张桌子 学生(id,姓名) 主题(id,name) 学生主题(学生标识,主题标识,标记) 我想选择通过所有科目的学生姓名(有分数的学生)。 我试过这个:

  • 我有下表 在这里,我有一个“学生”表,我想 从学生表中获取每个科目的最大分数的学生的姓名,如以下输出。

  • 我必须这样做的代码,但在密码我不知道怎么做,它是在java 编写一个完整的Java程序,执行以下操作: 要求用户输入他的姓名和学生ID。 根据以下规则为学生生成一个密码:a.生成的密码是4个数字B。第一个数字(第一个数字)是你的学生ID. c.的第一个数字。第二个数字(TENS)是你的学生ID.的第四和第五个数字的总和;如果总和大于9,那么考虑那些:例如,如果总和等于17,则第二位数字将为7。d、

  • 我正在努力让这个程序完全按照作业的要求去做。当试图删除一个添加的学生时,它抛出一个空指针异常。另外,当我列出学生时,它显示所有内容都是空的。 -代码是固定的- 学生班: 包分配; 公开课学生{ 公共字符串 getFirstName() }

  • 我有一个使用java的登录系统,我的系统还有最后一个问题。 当我仅在JTextField中键入并登录学生的学生ID号时,它将在文本字段中显示他或她的名字和姓氏。这是我的学生登录系统。 我的问题是,当我登录他或她的学号时,我想复制学生的数据,如学号、名字、中间名、姓氏,并插入我的PMA学生记录表。 它会有一个错误,它说“SQL语法应该被审查”需要帮助。