如何比较两个不同大小的列表并从列表中返回常见记录...在java中

时间:2016-09-09 06:33:42

标签: java

这是代码。如何比较两个不同大小的列表并从列表中返回常见记录...在java中

for (Bean1 obj1 : list1) {
    for (Bean2 obj2 : list2) {
        if (obj1.getNum1().equals(obj2.getNum2())) {
        }
        else {
        }
    }
}

3 个答案:

答案 0 :(得分:0)

您可以将其保存到一个新的列表中,该列表的泛型为Bean1Bean2的超类,例如Object

List<Object> list = new ArrayList<Object>();
for (Bean1 obj1 : list1) {
for (Bean2 obj2 : list2) {
    if (obj1.getNum1().equals(obj2.getNum2())) {
            list .add(obj1);
     }
 }
}

答案 1 :(得分:0)

假设Bean1和Bean2包含String类型的num1和num2,请尝试以下示例:

public static void main(String[] args) {
    List<Bean1> list1 = new ArrayList<Bean1>();
    List<Bean2> list2 = new ArrayList<Bean2>();
    List<Object> list3 = new ArrayList<Object>();

    Bean1 bean1 = new Bean1();
    Bean1 bean11 = new Bean1();
    Bean1 bean12 = new Bean1();

    Bean2 bean2 = new Bean2();
    Bean2 bean21 = new Bean2();
    Bean2 bean22 = new Bean2();
    Bean2 bean23 = new Bean2();

    bean1.setNum1("a");
    list1.add(bean1);
    bean11.setNum1("b");
    list1.add(bean11);
    bean12.setNum1("c");
    list1.add(bean12);

    bean2.setNum2("a");
    list2.add(bean2);
    bean21.setNum2("d");
    list2.add(bean21);
    bean22.setNum2("e");
    list2.add(bean22);
    bean23.setNum2("b");
    list2.add(bean23);

    for (Bean1 ben1 : list1) {
        for (Bean2 ben2 : list2) {
            if (ben1.getNum1().equals(ben2.getNum2())) {
                list3.add(ben1.getNum1());
            }
        }
    }

    for (Object obj : list3) {
        System.out.println(obj);
    }
}

答案 2 :(得分:0)

>>> X_train_to_add = X_masked[indices_to_add,:] >>> X_train_to_add array([[13, 14, 15], [ 1, 2, 3]]) 次迭代而非list1.size() + list2.size()

的解决方案
list1.size() * list2.size()