java中使用Lambda对数组排序

这里使用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()));//简化一下
		
		
    }

}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值