我正在尝试执行一个程序,用于比较两个链表中的元素。一种方法是使用两个for循环遍历这两个列表,并使用.equals()方法比较list1中的每个元素与list2中的对应元素。另一种方法是仅遍历第一个列表,并检查list1是否包含list1.get(i)。Java文档显示.contains在内部使用.equals进行比较。如果是这样,为什么前者的运行时间比后者长?我是否误解了文档?如果是,那么当我使用.contains时内部比较会如何进行?
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++; }