如何将数组中的元素与List中的元素进行比较?

时间:2014-05-03 10:25:33

标签: java arrays linked-list

我正在编制一种方法来展示购物中心的所有员工:

public SList<Empleado> getEmployees(boolean show) {
    SList<Employee> allEmployees = new SList<Employee>();

    for (int i = 0; i < centreEmployees.length; i++) {
        allEmployees.addFirst(centreEmployees[i]);
    }

    for (int j = 0; j < shopList.length; j++) {
        for (int x = 0; x < shopList[j].getEmployees().length; x++) {
            allEmployees.addFirst(shopList[j].getEmployees()[x]);
        }
    }

    if (show) {
        for (int i = 0; i < allEmployees.getSize(); i++) {
            System.out.println(allEmployees.getAt(i).toStringE());
        }
    }
    return allEmployees;
}

centreEmployees和shopList是两个阵列,我想将我添加到allEmployees列表的员工与我从shopList[j].getEmployees()[x]添加的员工进行比较。

这是因为两家商店可能拥有相同的员工,当我试图展示它们时,它们显示重复,我只想展示一次。

1 个答案:

答案 0 :(得分:0)

  

它们显示重复,我只想一次显示它们

只需尝试Set即:

  

不包含重复元素的集合。更正式地说,集合不包含元素对e1和e2,使得e1.equals(e2)和至多一个null元素。正如其名称所暗示的,该界面模拟数学集抽象。

您需要通过覆盖equals()hashCode()方法来提供Employee对象相等的逻辑。

class Employee{
      String name;

      public boolean equals(Object o) {
         ...//logic to compare the equality of the Employee object
      }

      public int hashCode() {
         ...
      }

 }

HashSet在内部使用hashCode()方法检查是否相等。如果两个Employee对象生成相同的哈希代码,则equals()方法会检查是否相等。

查看Set接口的其他实现。