生成添加到ArrayList的对象的编号

时间:2017-01-04 17:41:58

标签: java arraylist

我创建了一个ArrayList,我希望根据用户输入添加事件的参与者。添加的每个参与者将自动获得一个起始编号,其中第一个参与者应该获得数字100.对于之后添加的每个参与者,起始编号将增加一个(101,102,103等)任何建议如何执行此操作?

到目前为止,这是我的代码:

public void addParticipant() {

    int startNumber = 100;

    System.out.println("First name: ");
    String name = readString();
    System.out.println("Last name: ");
    String lastName = readString();
    System.out.println("Team: ");
    String team = readString();

    allParticipants.add(new Participant(name, lastName, team, startNumber));

    System.out.println(name + " " + lastName + " from " + team + " with number " + startNumber + " added \n");

2 个答案:

答案 0 :(得分:2)

将startNumber存储为实例变量而不是函数中的局部变量。添加新参与者后增加变量。

private int startNumber = 100;

public void addParticipant(){
    // Assign the startNumber to the new participant.
    startNumber++;
}

答案 1 :(得分:0)

有两种简单的方法可以做到这一点。

第一种方式:不是将参与者编号存储在本地变量中,而是将其存储在字段(实例变量)中,并在每次添加新参与者时将其递增1。我会是这样的:

public class SomeClass {

    private int startNumber = 100;

    // any other code in the class...

    public void addParticipant() {

        System.out.println("First name: ");
        String name = readString();
        System.out.println("Last name: ");
        String lastName = readString();
        System.out.println("Team: ");
        String team = readString();

        allParticipants.add(new Participant(name, lastName, startNumber));

        System.out.println(name + " " + lastName + " from " + team + " with number " + startNumber + " added \n");

        // Increment field startNumber
        startNumber = startNumber + 1;
    }
}

第二种方式:使用ArrayList的大小作为计数器。这就是我的意思:

public class SomeClass {

    // any other code in the class...

    public void addParticipant() {

        int startNumber = allParticipants.size() + 100;

        System.out.println("First name: ");
        String name = readString();
        System.out.println("Last name: ");
        String lastName = readString();
        System.out.println("Team: ");
        String team = readString();

        allParticipants.add(new Participant(name, lastName, startNumber));

        System.out.println(name + " " + lastName + " from " + team + " with number " + startNumber + " added \n");
    }
}

快乐的编码!