java - 将递增 int 分配给数组列表中的元素,Java

标签 java arraylist

所以我对 Java 还很陌生,而且自从我用 Java 编程以来也已经有一段时间了。我想知道的是如何将整数(例如学生编号)分配给数组列表中的元素。我的数组列表中有三个元素,每个元素必须有一个 7 位数的学生编号,其中第 7 位数字作为序列中的下一个数字(例如 el 1 的学生编号为 1234567,el 2 的学生编号为 1234568,el 3 的学生编号为 1234569 )。我不确定我是否走在正确的轨道上。这段代码是一个正在进行的工作,还有很多东西我仍然需要添加或修复。我的数组列表位于下一个名为 StudentApp 的代码块中。

public class Student    {

    //fields
    private String firstName;
    private String lastName;
    private int sNumber;
    private String major;
    private double gpa;

    private static int count()  {
        int count = 1234567;
        for (int i = 1; i <= count; i++)    {
            System.out.print(count);
        }
        return count;
    }

    //constructors
    public Student()    {
        firstName = null;
        lastName = null;
        sNumber = 1234567;
        major = null;
        gpa = 0.0;

    }

    public Student(String fName, String lName, int sNumber, String maj, double gpa) {
        firstName = fName;
        lastName = lName;
        sNumber = sNumber;
        major = maj;
        gpa = gpa; 
    }

    //methods

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public int getsNumber() {
        for(int sNumber = 0; sNumber >= 7; sNumber++)   {
            int sNumber = 1234567;
            sNumber++ 
        }
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getMajor() {
        return major;
    }

    public void setMajor(String major) {
        this.major = major;
    }

    public double getGpa() {
        return gpa;
    }

    public void setGpa(double gpa) {
        this.gpa = gpa;
    }

    @Override
    public String toString() {
        return "S" + sNumber + " " + firstName + " "+ lastName + " " + "(" + major +")" + " " + "gpa:" + gpa;
    }
}

import java.util.Scanner;
import java.util.ArrayList;

public class StudentApp {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        ArrayList<Student> names = new ArrayList<Student> ();

        Student student1 = new Student();
        student1.setFirstName("Brian");
        student1.setLastName("Scholl");
        student1.setMajor("CS");
        student1.setGpa(3.5);

        Student student2 = new Student();
        student2.setFirstName("Emily");
        student2.setLastName("Davies");
        student2.setMajor("ME");
        student2.setGpa(3.7);

        Student student3 = new Student();
        student3.setFirstName("Sarah");
        student3.setLastName("Dixon");
        student3.setMajor("EE");
        student3.setGpa(3.8);

        names.add(student1);
        names.add(student2);
        names.add(student3);

        int choice;
        do{
            displayMenu();
            choice = input.nextInt();
            switch(choice)  {
            case 1:
                Student student4 = new Student();

                System.out.print("First name: ");
                String fName1 = input.nextLine();
                System.out.println();
                System.out.print("Last name: ");
                String lName1 = input.nextLine();
                System.out.println();

                System.out.print("Major: ");
                String major1 = input.nextLine();
                System.out.println();
                System.out.print("GPA: ");
                double gpa1 = input.nextDouble();

                student4.setFirstName(fName1);
                student4.setLastName(lName1);
                student4.setMajor(major1);
                student4.setGpa(gpa1);
                names.add(student4);
                break;
            case 2:

                System.out.print("Find student with sNumber S");
                input.nextInt();
                student1.getsNumber();
                //statement on finding a student
                break;
            case 3:
                //statement on deleting a student
                break;
            case 4:
                System.out.println(student1);
                System.out.println(student2);
                System.out.println(student3);
                break;
            case 5:
                names.size();
                break;
            case 6:
                System.out.println("Good bye");
                break;
            default:
                System.out.println("Invalid Selection");
                System.out.println();
                break;
            }
            System.out.println();
        }while(choice != 0 );


    }

    public static void displayMenu()    {
        System.out.println("1. Add a student");
        System.out.println("2. Find a student");
        System.out.println("3. Delete a student");
        System.out.println("4. Display all students");
        System.out.println("5. Display the total number of students");
        System.out.println("6. Exit");
    }

}

最佳答案

向 Student 类添加静态属性 (studentNumberSequence) 并初始化值(例如 1234567),并在构造函数中增加其值。您可以将以下行放入构造函数中:

sNumber = studentNumberSequence++;

我建议您使用Map(例如HashMap)而不是ArrayList,并应用“sNumber”作为映射键。

关于java - 将递增 int 分配给数组列表中的元素,Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39401373/

相关文章:

java - 为什么 spring batch itemWriter 有方法写数据列表

java - 在类本身中创建一个实例

java - 修剪 XML 时出现内存不足错误

java - Arraylists及其各种函数

android - 将对象arraylist转换为android中的游标

java - 从数组列表添加元素到 List<List<String>>

Java Builder 模式实现与 C# 的比较

java - 添加 java 之前检查对象是否在列表中

java - 使用 arraylist 打印给定字符串中长度为 k 的所有可能的字符串,并允许重复

java - JFace 的 MessageDialog 在 open() 方法中失败