Java基本语法回顾
在对象生成过程中,我们难免会牵扯到对象之间排序的问题,在Java语言中提供了自我排序的方式—Comparable函数,我们继承并重载对象Comparable函数,实现了对象之间的排序,并在此回顾了List的简单实用方法。
## 实现代码 ##
在这里,我们以Employee员工的三个属性进行测试,工号,姓名,年龄。
如下:
public class Employee implements Comparable<Employee> {
private int id;
private String name;
private int age;
public Employee(int id, String name, int age) {
// TODO Auto-generated constructor stub
this.id = id;
this.name = name;
this.age = age;
}
/**
先为升序排列,如果将两个if返回值互换则为降序排列
**/
@Override
public int compareTo(Employee arg0) {
// TODO Auto-generated method stub
if(id > arg0.id){
return 1;
}
if (id < arg0.id) {
return -1;
}
return 0;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("员工的编号: " + id + ",");
sb.append("员工的姓名: " + name + ",");
sb.append("员工的年龄: " + age + ",");
return sb.toString();
}
}
主函数如下:
public static void main(String[] args) {
List<Employee> list = new ArrayList<Employee>();
list.add(new Employee(3, "Java", 23));
list.add(new Employee(2, "Java", 22));
list.add(new Employee(1, "Java", 21));
System.out.println("排序前");
for(Employee employee:list){
System.out.println(employee);
}
Collections.sort(list);
System.out.println("排序后");
for(Employee employee:list){
System.out.println(employee);
}
}
如果我们想转变排序方式,可以使用Collections.reverse(List<?> list)
反转列表进行排序
public static void main(String[] args) {
List<Employee> list = new ArrayList<Employee>();
list.add(new Employee(1, "Java", 21));
list.add(new Employee(3, "Java", 23));
list.add(new Employee(2, "Java", 22));
Collections.sort(list);
System.out.println("升序排序:");
for(Employee employee: list){
System.out.println(employee);
}
Collections.reverse(list);
System.out.println("降序排序:");
for(Employee employee: list){
System.out.println(employee);
}
}
测试成功