排序写法+jdk8的lambada简单样例

本文通过多个示例介绍了如何在Java中使用JDK8的Stream API和Lambda表达式进行列表排序,包括传统Comparator接口实现、Lambda表达式简化及自然排序方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为熟悉jdk8的stream,lambada写法,特编写一些简单示例如下:

先上一个排序,使用了lambda表达式的演变图:

代码如下:

public void test1() {
		System.out.println("##########test1##########");
		
		//jdk8以前的写法,Comparator接口实现的参数
		List<String> list01 = Arrays.asList("a","b","g","f","e","c","d");
		list01.sort(new Comparator<String>() {
			public int compare(String e1, String e2) {
				// TODO Auto-generated method stub
				return e1.compareTo(e2);
			}
		});
		System.out.println("=======list01======");
		System.out.println(JSON.toJSON(list01));
		
		//尝试使用lambada表达式
		List<String> list02 = Arrays.asList("a","b","g","f","e","c","d");
		list02.sort((String e1,String e2) -> {
			int a = e1.compareTo(e2);
			return  a ;
		});
		System.out.println("======list02=======");
		System.out.println(JSON.toJSON(list02));
		
		//lambada表达式简化版本
		List<String> list03 = Arrays.asList("a","b","g","f","e","c","d");
		list03.sort((e1,e2) ->  e1.compareTo(e2));
		System.out.println("=======list03======");
		System.out.println(JSON.toJSON(list03));
		
		//lambada表达式进一步简化
		List<String> list04 = Arrays.asList("a","b","g","f","e","c","d");
		list04.sort(String::compareTo);
		System.out.println("=====list04========");
		System.out.println(JSON.toJSON(list04));
		System.out.println();
		
		
	}

其他方式实现排序:

public void test2() {
		
		System.out.println("##########test2##########");
		
		//使用Collections类的sort方法
		List<String> list05 = Arrays.asList("a","b","g","f","e","c","d");
		Collections.sort(list05,(e1,e2) ->  e1.compareTo(e2));
		System.out.println("=====list05========");
		System.out.println(JSON.toJSON(list05));
		
		//使用stream的sort方法2
		List<String> list06 = Arrays.asList("a","b","g","f","e","c","d");
		List<String> list07 = list06.stream()
				.sorted((e1,e2) -> e1.compareTo(e2))
				.collect(Collectors.toList());
		System.out.println("=======list07======");
		System.out.println(JSON.toJSON(list07));
		
		//使用Comparator接口的naturalOrder方法
		List<String> list08 = Arrays.asList("a","b","g","f","e","c","d");
		list08.sort(Comparator.naturalOrder());
		System.out.println("======list08=======");
		System.out.println(JSON.toJSON(list08));
	}

测试方法:

public static void main(String[] args) {
		
		List<String> list00 = Arrays.asList("a","b","g","f","e","c","d");
		List<String> list = list00.stream().sorted().collect(Collectors.toList());
		System.out.println(JSON.toJSON(list));
		
		new TestCompareStream().test1();
		new TestCompareStream().test2();
	}

执行结果:如图:最终的排序结果都一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值