在Java中添加到ArrayList中的元素?

时间:2012-03-26 16:48:49

标签: java arrays arraylist storage

在课堂内的那一刻,我有了ArrayList,当它们被添加到俱乐部时,对象被存储在其中。我还有一个整数,一旦将对象添加到ArrayList,它将自动递增。但是,我不确定如何在ArrayList中添加注册ID和播放器对象。

4 个答案:

答案 0 :(得分:2)

一种解决方案是使用Map将个人ID与特定玩家相关联,作为键值对,而不是List

public class Club
{

    private String clubName;
    private int registrationID;
    private Map<Player, Integer> players;

    /**
     * Create a club with given club name.
     */
    public Club(String clubName)
    {
        players = new HashMap<Player, Integer>();
        this.clubName = clubName;
        registrationID = 1;
    }

    public void registerPlayer(Player p)
    {
        // check if player is already in the club:
        if (!players.containsKey(p)) {
            players.put(p, new Integer(registrationID));
            // increment ID counter:
            registrationID++;
        }
    }

    public void listAll () 
    {
        for (Player p : players.keySet()) {
            System.out.println(p);
        }
    }

}

答案 1 :(得分:2)

从你的描述中并不完全清楚你到底想要做什么,所以我猜是这样的:

public synchronized void registerPlayer(Player p)
{
    p.setRegistrationId(registrationID++);
    players.add(p);
}

答案 2 :(得分:0)

尝试创建另一个类:

public class Registration() {
    private Player player;
    private String registrationId;

    public Registration(Player p) {
        // Assign p to player
        // Generate the registration ID
    }
}

然后让ArrayList<Registration> registrations来容纳所有这些。然后,您的listAll()方法需要引用i.getNext().getPlayer()来执行相同的操作。

答案 3 :(得分:0)

我猜猜玩家在将其添加到arraylist后要设置ID的字段?

如果您知道播放器的索引,只需使用get方法获取对象并设置ID。如果您没有索引,则必须遍历arraylist才能找到您的对象。