以下程序的输出不是我所期望的。这个程序有什么问题吗?请提出建议。
[你好113 , 你好380 , 你好293 , 你好290 , 你好246 , 你好456 , 你好797 , 你好888 , 你好981 ]
编辑:我只想以这种方式做到这一点。不使用 collections.sort()。
public class Sample {
public static void main(String[] args) {
Random random = new Random(10);
List<Employee> employees = new ArrayList<Employee>();
for (int i=0;i<10;i++)
{
Employee e = new Employee(i,"Hello"+random.nextInt(1000));
employees.add(e);
}
System.out.println(employees);
}
}
class Employee implements Comparable<Employee>
{
private int empNo;
private String empName;
public int getEmpNo() {
return empNo;
}
public void setEmpNo(int empNo) {
this.empNo = empNo;
}
public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
Employee(int empNo,String empName)
{
this.empName=empName;
this.empNo=empNo;
}
@Override
public String toString() {
return empName+" \n";
}
@Override
public int compareTo(Employee o) {
return this.getEmpName().compareTo(o.getEmpName());
}
}
最佳答案
ArrayList
保持元素添加时的顺序。如果您想对它们进行排序,您需要创建一个使用您实现的 compareTo
的排序方法,或者只需调用 Collections.sort(employees)
。
我建议使用您自己的排序算法实现。您可以尝试使用插入排序
或quicksort
,这样您就可以充分利用不使用已经实现的东西(如Collections.sort)。
您还可以使用 TreeSet
对集合自动排序,但作为 Set
您不会有重复项。
关于Java 使用可比较对 Pojo 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18912229/