Sto provando ad eseguire un programma, per confrontare gli elementi in due elenchi collegati tra loro. in un modo, posso farlo eseguendo due cicli for e iterando su entrambi gli elenchi confrontando ogni elemento in list1 con list2 usando .equals(). l'altro modo è, semplicemente iterando sul primo elenco e controllando se list1.contains (list1.get (i)) .. la documentazione java dice che .contains fa .equals internamente. se questo è il caso, come è che il mio tempo di esecuzione per il primo è più lungo rispetto a quest'ultimo? Ho interpretato male la documentazione? Se l'ho fatto, come avviene esattamente il confronto interno quando lo uso contiene?Java: .contains and .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++; }
Considerare l'origine. –
Non è necessario utilizzare per il ciclo per verificare se un elemento è presente o meno nell'elenco. – adatapost
Devo controllare se ogni elemento nel primo elenco è abbastanza nella seconda lista. Fondamentalmente, raccogliendo gli elementi sovrapposti. – madCode