En cuanto al rendimiento, ¿existe realmente una gran diferencia entre el uso de:¿Alguna gran diferencia entre usar contains o loop en una lista?
- ArrayList.contains (o) vs foreach | iterador
- LinkedList.contains (o) vs foreach | iterador
De Por supuesto, para los bucles foreach | iterator, tendré que comparar explícitamente los métodos y devolver true o false en consecuencia.
El objeto que estoy comparando es un objeto donde equals()
y hashcode()
se han sobrescrito correctamente.
EDITAR: No necesita saber acerca de containsValue después de todo, perdón por eso. Y sí, soy estúpido ... Me di cuenta de lo estúpida que era mi pregunta sobre containsKey vs foreach, no importaba eso, no sé lo que estaba pensando. Básicamente quiero saber sobre los anteriores (editados los otros).
No se preocupe - es una cuestión más interesante de esta manera. :) – CPerkins
Otra razón para usar '.contains (o)' frente a un loop es que, como se ve en las respuestas, la forma en que looping depende del tipo Collection mientras que contains() funciona para cualquier Collection. No le importa si es una ArrayList o LinkedList, o incluso una Lista; sin embargo, todavía está atascado con la dicotomía '.containsKey (k)' o 'containsValue (v)' con Maps. –
Para 'LinkedList',' contains' es aproximadamente dos veces más rápido que for-each (ver http://stackoverflow.com/questions/2804250/linkedlist-contains-execution-speed/) – polygenelubricants