Java 如何将数组中的元素与SList中的元素进行比较?
我正在编写一个方法,向购物中心的所有员工展示:Java 如何将数组中的元素与SList中的元素进行比较?,java,arrays,linked-list,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(centreEmp
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;
}
public SList getEmployees(布尔显示){
SList allEmployees=新SList();
for(int i=0;i
centreEmployees和shopList是两个数组,我想将我添加到allEmployees列表的员工与我从shopList[j].getEmployees()[x]
添加的员工进行比较
这是因为两个商店可能有相同的员工,当我试图向他们展示时,他们展示的是重复的,我只想给他们展示一次
他们正在展示复制品,我只想展示一次
简单地说:
不包含重复元素的集合。更正式地说,集合不包含e1和e2元素对,因此e1.equals(e2)最多包含一个空元素。正如它的名字所暗示的,这个接口为数学集合抽象建模
您需要通过重写equals()
和hashCode()
方法来提供Employee对象相等的逻辑
class Employee{
String name;
public boolean equals(Object o) {
...//logic to compare the equality of the Employee object
}
public int hashCode() {
...
}
}
内部使用
hashCode()
方法检查是否相等。如果两个Employee对象生成相同的散列码,那么它将为equals()
方法检查是否相等
查看
Set
接口的另一个实现。如果您的SList
类有一个contains方法,您可以在将员工添加到您构建的SList
之前使用它(这不是很有效)。如果允许您使用JDK集合,则您可能正在查找的结构可能是集合。什么是toString()
?@Braj SList是一个包含与该列表交互的方法的类。ToString()是一个以字符串形式返回属性的方法。@alexgarciab请尝试使用Set
@ZouZou谢谢。使用包含的方法,我已经解决了这个问题。