Добавление к элементу в ArrayList в Java? - PullRequest
0 голосов
/ 26 марта 2012

На данный момент внутри класса у меня есть ArrayList, в котором хранятся объекты при добавлении в клуб.У меня также есть целое число, которое будет автоматически увеличиваться после добавления объекта в ArrayList.Однако я не уверен, каким образом я смогу добавить регистрационный идентификатор с объектом player в ArrayList.

Ответы [ 4 ]

2 голосов
/ 26 марта 2012

Из вашего описания не совсем понятно, что именно вы пытаетесь сделать, поэтому я предполагаю что-то вроде этого:

public synchronized void registerPlayer(Player p)
{
    p.setRegistrationId(registrationID++);
    players.add(p);
}
2 голосов
/ 26 марта 2012

Одним из решений является использование Map, который связывает индивидуальный идентификатор с конкретным игроком, в качестве пары ключ-значение вместо 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);
        }
    }

}
0 голосов
/ 26 марта 2012

Я предполагаю, что у игрока есть поле для идентификатора, который вы хотите установить после добавления его в массив?

Если вам известен индекс проигрывателя, просто выберите объект с помощью метода getи установите идентификатор.Если у вас нет индекса, вам придется пройтись по массиву, чтобы найти ваш объект.

0 голосов
/ 26 марта 2012

Попробуйте создать другой класс:

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(), чтобы выполнить то же действие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...