class Employee implements Comparable<Employee>
{
public Employee(int id, String name,int salary ,String designation)
{..}
// getters and setters
}
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”以检查重复但仍然无法正常工作???
答案 0 :(得分:3)
听起来好像要使用Set
,而不是List:
不包含重复元素的集合。更正式的,集合 不包含元素e1和e2对,使得e1.equals(e2)和at 大多数一个null元素。正如其名称所暗示的,这个界面模型 数学集抽象。
答案 1 :(得分:3)
您可以使用java.util.Set
实施而不是List
来确保其中没有重复项。这取决于equals
,必须将其用于比较ID。
如果您想要排序某些内容,可以使用TreeSet
实施。
答案 2 :(得分:2)
我建议创建一个扩展ArrayList的类,并覆盖add方法,所以当你尝试插入时,首先调用contains方法,如果它已经在列表中,则返回false:
@Override
public boolean add(E e){
if(super.contains(e){
return false;
}else{
super.add(e);
}
return true;
}
答案 3 :(得分:0)
如果你已经开始使用ArrayList了,也许你应该扩展它并实现你自己的add
函数。