java - 如何同时迭代两个对象集合?

标签 java

<分区>

Possible Duplicate:
How to most elegantly iterate through parallel collections?
Is there an accepted Java equivalent to Python's zip()?

我必须同时遍历两个对象集合,看看它们的成员是否相等。有没有办法使用计数器来访问对象或执行类似于下面的 for 循环的操作?

Boolean compareCollection(Collection<Object> c1, Collection<Object> c2)
{
     //something like -
     for (Object ob1 : c1, Object ob2 : c2){
           //check if ob1.val == ob2.val
     }
     return true;
}

最佳答案

像这样:

public static boolean compareCollection(Collection<Object> c1, Collection<Object> c2)   {
    if (c1 == null)
        return c2 == null;
    else if (c2 == null || c1.size() != c2.size())
        return false;
    Iterator<Object> it1 = c1.iterator();
    Iterator<Object> it2 = c2.iterator();
    while (it1.hasNext()) {
        Object o1 = it1.next();
        Object o2 = it2.next();
        if (!o1.equals(o2))
            return false;
    }
     return true;
}

当然,您必须使用正确的类型(我猜这不仅仅是 Object)对集合进行参数化并进行适当的比较:

if (!o1.val.equals(o2.val))

关于java - 如何同时迭代两个对象集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8661823/

相关文章:

java - 与 Spring 一起进行 bean 验证

java - ArangoDB java 驱动程序执行 AQL 有时返回 NULL,有时返回正确结果

java - 添加 MouseListener 而不扩展 Swing 组件

java - Spring BeanPostProcessor 不会调用其实现的 bean ,而是调用所有其他 bean

java - MongoDB java连接问题

java - Android - 如何简化十的倍数?

java - Jersey 应用程序 404 未找到错误

java - 为什么LRUCache的初始容量设置为(MAX_ENTRIES + 1)?

java - 相对于舞台而不是父级 Actor 的位置

java - 使用 springframework SimpleJdbcCall 捕获 RAISE_APPLICATION_ERROR