Pergunta

Dado um Item que foi anexado a um Form, o que é a melhor maneira de descobrir o que o índice desse item está em no formulário?

Form.append(Item) vai me dar o índice seu inicialmente adicionados no, mas se eu depois inserir itens antes que o índice vai estar fora de sincronia.

Foi útil?

Solução

Este foi o melhor que eu poderia vir acima com:

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

Eu não testei isso, mas deve trabalhar, eu só não gosto de ter de enumerar cada item, mas, em seguida, nunca deve haver que muitos então eu acho que é ok.

Outras dicas

Bem, existem apenas duas maneiras de fazer isso, já que a API não tem um método indexOf(Item):

  1. Você atualizar o índice que você começa quando você adicionar um Item. Então, quando você inserir outro Item antes de outros itens, você terá que atualizar os índices desses itens. Você poderia manter algum tipo de sombra-array para isso, mas que parece um exagero bit.
  2. Você percorrer todos os itens de um formulário usando os métodos size e get de Form.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top