Y a-t-il un moyen d'obtenir un identifiant d'élément d'une liste pour l'obtenir ultérieurement via lorsque vous utilisez P> list.get (index) code> for(Object obj: o)
4 Réponses :
Non, ceci est risqué car Si les éléments sont distincts, Il convient également de dire que parfois à l'aide d'un A C'est un autre avantage clair Âge pour chacune de la boucle code> ne garde pas la trace de l'index. Vous pouvez utiliser une boucle indexée régulière ou faire quelque chose comme ceci: pause code> / Continuer code> Code> IDX code> sort de la synchronisation, alors utilisez-le rarement, et seulement lorsque le corps est simple et que quelques lignes longues et seulement quelques lignes longues. P> list.indexof Le code> fonctionnerait également, bien que sur O (n) code>, et à ce stade, vous pouvez envisager un définir code> (non ordonné, mais garanti distinct). p>
lisiterator () code> atténue également la nécessité d'un index explicite tout en itération. p> lisiterator code> prend en charge ajouter code>, définir code> et supprimer des opérations code>. p> Liste CODE> a sur des tableaux en ce qui concerne le mécanisme d'itération. P> P>
Cette question n'est pas très bien libellée, mais d'après ce que je peux vous dire, vous souhaitez trouver la position d'un objet Tout d'abord, si vous connaissez l'objet Cela dit, vous pouvez facilement faire quelque chose comme ceci: p> mais je prendrais un deuxième regard sur votre Application pour déterminer si c'est vraiment quelque chose qui est nécessaire pour vous de faire. p> p> spécifique code> dans une liste code>, vous recherchez alors vous ne devez pas avoir à le trouver dans la liste code >, puisque vous l'avez déjà. P>
J'ai simplement besoin d'enregistrer une position dans la liste dans le champ de chaque objet. O.SeposInlist (courantIndexoftheloop)
La réponse simple est n °
Le meilleur que je peux penser consiste à combiner l'itération et l'indexation comme suit: p> Cette approche présente l'avantage que d'autre part, si la liste pause code> et continuer code> ne gâche pas les calculs code> iDX code>. p> < / code> est un arraylist code> et que vous souhaitez garder une trace de l'index, vous êtes probablement mieux en utilisant une variation de p>
Vous devez utiliser: La documentation est ici p> @eugene Je vois que vous avez mentionné dans un commentaire à une autre réponse que vous envisagez de stocker le Index d'un objet (avec dans l'objet en question?), ce n'est probablement pas une bonne idée, soyez très prudent car un indice d'objets peut changer. P> P>
ma réponse est cependant raisonnable. Et plus important encore, fournit un lien pour mieux éduqué lui-même et d'autres. Si quelqu'un avec le représentant peut modifier la question plus sensible que ce serait génial.
Justin, j'allais descendre votre réponse, mais je ne ferais pas :-) - mais c'est la solution pire possible à ce problème, principalement parce que si vous conservez une variable d'index, le temps nécessaire pour calculer la position dans l'index serait être O (1), juste le temps nécessaire pour incrémenter la variable. Avec votre approche, le temps est O (n), où "n" est la position de l'élément de la liste.
Il renvoie également la première occurrence, donc si vous avez des duplicats dans la liste, il retournera toujours l'index du premier objet qui est égal à le paramètre.
@Ravi, bien sûr, mais l'OP a demandé une manière "plus simple" de le faire, il est déjà au courant de l'incrémentation d'une variable.