java lambda表达示

2 篇文章 0 订阅

0. 基本信息

List<Order> list = new ArrayList();
Order o1 = new Order(1,"A111",1);
list.add(o1 );
Order o2= new Order(2,"A124",1);
list.add(o2);
Order o3= new Order(3,"B11",2);
list.add(o3);

@Data
@Value
public class Order{

	private int id;

	private String orderNo;

	private int type;
}

1.取出一个属性

//取出orderNo
List<String> orderNoList=list.stream().map(Order::getOrderNo).collect(Collectors.toList());
//取出type
//没有去重
List<Integer> listType0= list .stream().map(Order::getType).collect(Collectors.toList());
//去重
 List<Integer> listType= list .stream().map(Order::getType).distinct().collect(Collectors.toList());

2.遍历-foreach,使用stream流进行foreach遍历

list.stream().forEach(it->{
//处理逻辑
System.out.println(it.getOrderNo());

});

3.筛选list,filter函数的()里,应该放逻辑,判断条件,将符合条件的放到resultList中

List<Order> resultList = list.stream().filter(it -> Objects.equals(it.getType(),1))
.collect(Collectors.toList());

4.list去重,根据type去重

List<Order> unique = list.stream().collect(Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Order::getType))),
 ArrayList::new));

5.list与map互转

//id做为key
Map<Integer,Order> orderMap = list.stream().collect(Collectors.toMap(Order::getId, order -> order));
//key重复时,取第一个
Map<Integer,Order> orderTypeMap = list.stream().collect(Collectors.toMap(Order::getType,order->order, (key1,key2) -> key1));

6.map转list

List<Order> collectList = orderMap.values().stream().collect(Collectors.toList());

7.过滤属性值为某值的字段

List<Integer> typeList = list.stream().map(s -> s.getType()).filter(s -> s==1).collect(Collectors.toList());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值