【发布时间】:2012-02-20 23:55:01
【问题描述】:
我正在尝试执行一个程序,以比较两个链表中的元素。 一种方法是,我可以通过执行两个 for 循环并迭代两个列表,使用 .equals() 将 list1 中的每个元素与 list2 进行比较。 另一种方法是,只需遍历第一个列表并检查 list1.contains(list1.get(i)) .. java 文档说, .contains 确实 .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++; }
【问题讨论】:
-
考虑查看源代码。
-
无需使用for循环来检查列表中是否存在元素。
-
我要检查第一个列表中的每个元素是否在第二个列表中都很漂亮。基本上,拾取重叠的元素。