Domanda

Dato un Articolo che è stato aggiunto a un Modulo , qual è il modo migliore per scoprire a quale indice si trova quell'elemento nel modulo?

Form.append (Item) mi darà l'indice in cui è stato inizialmente aggiunto, ma se in seguito inserirò elementi prima dell'indice non sarà sincronizzato.

È stato utile?

Soluzione

Questo è stato il migliore che ho potuto inventare:

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

In realtà non l'ho provato, ma dovrebbe funzionare, non mi piace dover elencare tutti gli articoli, ma non dovrebbero mai essercene così tanti, quindi immagino sia ok.

Altri suggerimenti

Bene, ci sono solo due modi per farlo, poiché l'API non ha un metodo indexOf (Item) :

  1. Aggiorna l'indice che ottieni quando aggiungi un Item . Pertanto, quando inserisci un altro Item prima di altri elementi, dovrai aggiornare gli indici di tali elementi. Potresti tenere una sorta di sistema di ombreggiatura per questo, ma sembra un po 'eccessivo.
  2. Puoi scorrere tutti gli elementi di un modulo usando i metodi size e get di Form .
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top