java中使用Lambda对数组排序
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("---------------------------------");
//先使用对其排序,重写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("----------------------------");
//使用对其排序,重写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()));//简化一下
}
}