这里使用ArrayList数组对Person对象进行排序。
我们先创建一个Person对象昂:
package Lambda2;
public class Person {
private String name;//姓名
private int age;//年龄
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public Person() {
}
}
然后我们使用Lambda表达式对Person排序;
package Lambda2;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class ArrayLambda {
public static void main(String[] args) {
ArrayList<Person> p=new ArrayList<Person>();
p.add(new Person("sjk",3));
p.add(new Person("sjk2",2));
p.add(new Person("sjk3",9));
p.add(new Person("sjk4",7));
System.out.println(p);
System.out.println("---------------------------------");
//先使用Collections.sort对其排序,重写compare函数
Collections.sort(p, new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
return o1.getAge()-o2.getAge();
}
});
System.out.println(p);
System.out.println("----------------------------");
//使用p.sort对其排序,重写compare函数
p.sort(new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
return o1.getAge()-o2.getAge();
}
});
System.out.println(p);
Collections.shuffle(p);//由于前面排序了,这里把数组打乱
System.out.println(p);
System.out.println("-------------------------");
//使用Lambda
p.sort((Person o1, Person o2)->o1.getAge()-o2.getAge());
System.out.println(p);
System.out.println("-------------------------");
Collections.shuffle(p);//由于前面排序了,这里把数组打乱
p.sort(((o1, o2) -> o1.getAge()-o2.getAge()));//简化一下
}
}