-5
class Employee implements Comparable<Employee> 
{

    public Employee(int id, String name,int salary ,String designation)
    {..}

//getter 和 setter

}
 public class TestEmployeeSort
{
     public static void main(String[] args) 
     {
         List<Employee> col = new ArrayList<Employee>();
             Employee one =  new Employee(**2**, "rahul",100, "bc");
         Employee oone =  new Employee(**2**, "sfdful",1300, "bdfsc");
         col.add(one);
         col.add(oone);

     }
}

在这里,我制作了一个程序,其中对象中的 4 个字段现在从 arraylist 对象中传递名为 id、name、salary 和 designation 我想从 4 个使用的名为“id”的对象中提取一个实体,并希望使其唯一,以便不能插入具有重复 id 的对象...(类似于 set 的工作,但不想在这里使用 set)如何完成 .....我尝试在构造函数中创建一个方法并传递“this.id” " 在一组中检查重复项,但仍然无法正常工作???

4

4 回答 4

3

您可以使用java.util.Set实现而不是 aList来确保其中没有重复项。这取决于equals,必须实现它来比较 id。

如果您想对某些内容进行排序,则可以使用该TreeSet实现。

于 2012-05-14T08:41:00.893 回答
3

听起来您想使用Set,而不是 List:

不包含重复元素的集合。更正式地说,集合不包含一对元素 e1 和 e2 使得 e1.equals(e2),并且最多包含一个空元素。正如它的名字所暗示的,这个接口模拟了数学集合抽象。

于 2012-05-14T08:39:14.027 回答
2

我建议创建一个类来扩展 ArrayList,并覆盖 add 方法,所以当你尝试插入时,首先调用 contains 方法,如果它已经在列表中,则返回 false:

@Override
public boolean add(E e){
 if(super.contains(e){
    return false;
 }else{
    super.add(e);
 }
return true;
}
于 2012-05-14T08:45:23.147 回答
0

如果你死心塌地使用 ArrayList,也许你应该扩展它并实现你自己的add函数。

于 2012-05-14T08:41:31.607 回答