Estoy tratando de ejecutar un programa, para comparar elementos en dos listas vinculadas entre sí. unidireccional, puedo hacerlo ejecutando dos loops e iterando sobre las listas que comparan cada elemento en list1 con list2 usando .equals(). a la inversa, simplemente iterando sobre la primera lista y comprobando si list1.contains (list1.get (i)) ... la documentación de Java dice que .contains hace .equals internamente. si ese es el caso, ¿cómo es que mi tiempo de ejecución para el primero es más largo en comparación con este último? ¿He malinterpretado la documentación? Si lo hice, ¿cómo exactamente tiene lugar la comparación interna cuando uso contiene?Java: .contains y .equals
using equals:
for (int i = 0; i < list_one.size(); i++) {
for (int j = 0; j < list_one.size(); j++) {
if (list_one.get(i).equals(list_two.get(j))) { count++; }
using contains:
for (int i = 0; i < list_one.size(); i++) {
if (list_two.contains(list_one.get(i)) == true) { count++; }
Considera mirar la fuente. –
No es necesario usar for loop para verificar si un elemento está presente o no en la lista. – adatapost
Tengo que verificar si cada elemento de la primera lista es bonito en la segunda lista. Básicamente, recogiendo los elementos superpuestos. – madCode