Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.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_Arraylist - Fatal编程技术网

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

Java 为添加到ArrayList的对象生成编号,java,arraylist,Java,Arraylist,我已经创建了一个ArrayList,我想在其中根据用户输入为事件添加参与者。每一个加入的参与者将自动获得一个起始号码,第一个参与者将获得号码100。对于每增加一名参与者,开始人数将增加一名(101、102、103等),有何建议 这是到目前为止我的代码: public void addParticipant() { int startNumber = 100; System.out.println("First name: "); String name = readS

我已经创建了一个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");

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

private int startNumber = 100;

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

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

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

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");
    }
}

快乐编码

只需使用
allParticipants
的大小,并将其添加到
startNumber
?有许多可能实现这一点的实现。