我收到错误的异常在线程“主要” java.lang.ClassCastException :com.genous.Employee不能转换为java.lang.Comparable的我想根据名字来缩短员工,但我得到这个错误?
在java.util.Arrays.mergeSort(Arrays.java :1157)
在java.util.Arrays.sort(Arrays.java:1092)
在java.util.Collections.sort(Collections.java:134)
在com.genious。 Employee.main(Employee.java:54)//
public class Employee implements Comparator
{
String firstname;
String lastname;
int mobileno;
public Employee(String firstname,String lastname,int mobileno)
{
this.firstname=firstname;
this.lastname=lastname;
this.mobileno=mobileno;
}
@Override
public String toString() {
return firstname;
}
@Override
public int compare(Object o1, Object o2) {
Employee e2=(Employee)o1;
Employee e3=(Employee)o2;
int i=e2.firstname.compareTo(e3.firstname);
if(i!=0)
return i;
return i;
}
/**
* @param args
*/
public static void main(String[] args) {
ArrayList list=new ArrayList();
Employee e=new Employee("anand","pandey",93456666);
Employee e1=new Employee("sheel","nidhi",678956344);
Employee e5=new Employee("shumit", "Kumar", 97390267);
Employee e6=new Employee("Kamal", "Kumar", 97390267);
list.add(e);
list.add(e1);
list.add(e5);
list.add(e6);
System.out.println(list);
Collections.sort(list);
System.out.println(list);
}
}
你打算如何确定一名员工是否与另一名员工相同?如果你只想要独特的elemetns被存放,使用集合。如果允许重复员工,请使用列表 –
为什么地球上会有ArrayList中的数百万条记录的数据库,而不是您知道的关系数据库。不仅对RDBMS目录执行查询要容易得多,而且对系统资源更友好且更强大。看起来你正在使用错误的工具来解决那些非常普遍的问题。 – scottb
如果是面试问题,你应该写一下。那么社会就会明白,问题不在于如何做到这一点。问题是如何使用ArrayList作为数据结构。这是关于算法的更多信息 – hatesms