1、需要排序的类
```java
package com.shsj.sort;
public class Student {
private String name; //姓名
private int age; //年龄
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
2、在主类中实现Collections.sort中的compare方法进行排序
-
创建一个类的集合对象List stuList = new ArrayList<>();
-
创建类对象,并赋值
//创建并添加到stuList第一个学生
Student stu1 = new Student();
stu1.setName(“小涂”);
stu1.setAge(23);
stuList.add(stu1); -
将类对象添加到集合
-
对集合排序,实现Collections.sort中匿名类Comparator,实现compare方法
Collections.sort(Stuarr, new Comparator() {
@Override
public int compare(Student o1, Student o2) {
// TODO Auto-generated method stub
//按年龄排序
if(o1.age>o2.age) {
return 1;
}
if(o1.age<o2.age) {
return -1;
}
return 0;
}});
package com.shsj.sort;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class SortDemo {
public static void main(String[] args) {
List<Student> stuList = new ArrayList<>();
//创建并添加到stuList第一个学生
Student stu1 = new Student();
stu1.setName("小涂");
stu1.setAge(23);
stuList.add(stu1);
//创建并添加到stuList第二个学生
Student stu2 = new Student();
stu2.setName("小刘");
stu2.setAge(21);
stuList.add(stu2);
//创建并添加到stuList第三个学生
Student stu3 = new Student();
stu3.setName("小王");
stu3.setAge(25);
stuList.add(stu3);
System.out.println("排序前的stuList集合:");
for (Student student : stuList) {
System.out.print(student.getName()+ student.getAge()+" ");
}
//实现Comparator进行排序
Collections.sort(stuList,new Comparator<Object>(){
@Override
public int compare(Object o1, Object o2) {
return ((Student) o2).getAge() - ((Student) o1).getAge();
}
});
System.out.println();
System.out.println("按照年龄降序排序后的stuList集合:");
for (Student student : stuList) {
System.out.print(student.getName()+ student.getAge()+" ");
}
}
}
内部类:
//非静态
public class Animal{
class Head{
}
}
//测试如何实例化内部类:
public class TestInstanceInnerClass{
public TestInstanceInnerClass(){
Animal animal = new Animal();//首先实例化外部类
Head head = animal.new Head();//把内部类当成一个成员变量进行实例化
}
}
//静态
class People{
static class Head{}
}
main(){
People.Head head=People.Head();//这样就可以直接实例化内部类而不用实例化外部类
}