如何使用具有唯一ID的ArrayList

时间:2018-01-07 05:29:20

标签: java arraylist collections static

我创建了一个学生对象的Arraylist。我使用静态变量作为ID。

这就是我的学生班级的样子;

Student class

Runner文件看起来像;

Runner file

我收到的输出是;

St_ID St_Name St_Age St_Course 3詹姆斯23统计 3米克24生物学 3珍妮22文学

但我需要的是;

St_ID St_Name St_Age St_Course 1詹姆斯23统计 2 Mick 24 Biology 3珍妮22文学

2 个答案:

答案 0 :(得分:1)

你对count变量是静态的是正确的。但是,Student类还应该有一个字段,用于存储每个学生的ID。这应该是非静态的,因为每个学生都会有不同的。

private int id;

在构造函数中,为其指定count

count++;
id = count;

getId方法应该是非静态的,并返回id

public int getId() { return id; }

答案 1 :(得分:0)

如果您不能使用唯一ID,则调用stobj.hashCode()将返回唯一的哈希码,因此每个学生都有唯一的ID。但是,如果你需要id从1开始并计数,那么保持计数,还要创建一个非静态变量并将其设置为等于构造函数中的当前计数。

public class Student {
    //fields here
    private static int count = 0; //not good style, but whatever
    private int id;

    public Student(String n, int a, String c) //you should work on your variable names
        count++;
        id = count;
        //other stuff here