Java 如何在不使用Set的情况下从此列表中删除重复元素? A类{ 公共静态void main(字符串参数[]){ 列表l=新的ArrayList(); l、 增加(新环境管理计划(123000,“ram”); l、 增加(新环境管理计划(224000,“aam”); l、 增加(新环境管理计划(123000,“ram”); } } 类电磁脉冲{ int id、工资、姓名; Emp(内部id、内部薪资、内部姓名){ 这个.id=id; 这个。薪水=薪水; this.name=name; } }

Java 如何在不使用Set的情况下从此列表中删除重复元素? A类{ 公共静态void main(字符串参数[]){ 列表l=新的ArrayList(); l、 增加(新环境管理计划(123000,“ram”); l、 增加(新环境管理计划(224000,“aam”); l、 增加(新环境管理计划(123000,“ram”); } } 类电磁脉冲{ int id、工资、姓名; Emp(内部id、内部薪资、内部姓名){ 这个.id=id; 这个。薪水=薪水; this.name=name; } },java,Java,第一件事是向Emp类添加equals()和hashCode(),如下所示(没有构造函数、getter和setter): 然后您可以编写一个方法,如: public class Emp { private int id; private int salary; private int name; @Override public boolean equals(final Object o) { if (this == o) { return true;

第一件事是向Emp类添加
equals()
hashCode()
,如下所示(没有构造函数、getter和setter):

然后您可以编写一个方法,如:

public class Emp {
  private int id;
  private int salary;
  private int name;

  @Override
  public boolean equals(final Object o) {
    if (this == o) {
      return true;
    }
    if (!(o instanceof Emp)) {
      return false;
    }

    final Emp emp = (Emp) o;

    if (id != emp.id) {
      return false;
    }
    if (name != emp.name) {
      return false;
    }
    if (salary != emp.salary) {
      return false;
    }

    return true;
  }

  @Override
  public int hashCode() {
    int result = id;
    result = 31 * result + salary;
    result = 31 * result + name;
    return result;
  }
}
public List removeDuplicate(最终列表项){
最终列表结果=新建ArrayList();
最终列表Doubletes=新的ArrayList();
用于(最终Emp项目:项目){
如果(!doubletes.contains)(项目){
结果.添加(项目);
添加(项目);
}
}
返回结果;
}

顺便问一下,你真的想要一个
int
作为名字吗?在你的例子中,你使用了一个字符串和构造函数int。如果你想要
String
,你必须修改
equals()
hashCode()

没有设置?然后映射?:-)简单的嵌套循环就足够了。要小心避免CME,但不是很难。我建议创建一个新的数组列表,因为这会使工作更容易。
int name
应该是
String name
,根据构造函数调用顺便说一句,在这个示例中,我看到了一个包含3个不同雇员的列表。第一个和第三个雇员不等于0ut更多代码。除了向我们展示您迄今为止所尝试的内容外,您应该注意,在这种情况下,集合将不起作用,因为您没有覆盖
Emp
中的
equals
测试,因此具有相同值的两个独立对象将被视为不同的对象。name的数据类型是String name;
public class Emp {
  private int id;
  private int salary;
  private int name;

  @Override
  public boolean equals(final Object o) {
    if (this == o) {
      return true;
    }
    if (!(o instanceof Emp)) {
      return false;
    }

    final Emp emp = (Emp) o;

    if (id != emp.id) {
      return false;
    }
    if (name != emp.name) {
      return false;
    }
    if (salary != emp.salary) {
      return false;
    }

    return true;
  }

  @Override
  public int hashCode() {
    int result = id;
    result = 31 * result + salary;
    result = 31 * result + name;
    return result;
  }
}
public List<Emp> removeDuplicate(final List<Emp> items) {
    final List<Emp> result = new ArrayList<Emp>();
    final List<Emp> doublettes = new ArrayList<Emp>();
    for(final Emp item : items) {
        if (!doublettes.contains(item) {
            result.add(item);
            doublettes.add(item);
        }
    }
    return result;
}