Question

Étant donné qu'un élément a été ajouté à un formulaire , quel est le meilleur moyen de connaître l'index de cet élément sur le formulaire?

Form.append (Item) me donnera l'index ajouté initialement à, mais si j'insère ultérieurement des éléments avant cela, l'index sera désynchronisé.

Était-ce utile?

La solution

C’était le meilleur que je pouvais trouver:

private int getItemIndex(Item item, Form form) {
    for(int i = 0, size = form.size(); i < size; i++) {
        if(form.get(i).equals(item)) {
            return i;
        }
    }
    return -1;
}

Je n’ai pas vraiment testé cela, mais cela devrait fonctionner. Je n’aime pas avoir à énumérer chaque élément, mais alors il ne devrait jamais y en avoir autant, alors je suppose que c’est bon.

Autres conseils

Eh bien, il n'y a que deux façons de le faire, car l'API n'a pas de méthode indexOf (Item) :

  1. Vous mettez à jour l'index que vous obtenez lorsque vous ajoutez un Élément . Ainsi, lorsque vous insérez un autre Élément avant d'autres éléments, vous devrez mettre à jour les index de ces éléments. Vous pouvez conserver une sorte de tableau d'ombre pour cela, mais cela semble un peu excessif.
  2. Vous parcourez tous les éléments d'un formulaire à l'aide des méthodes size et get de Form .
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top