Java --- stream() 流

   jdk8中,遍历一个集合都是循环的方式,从第一个数据遍历到最后一个数据,但是遍历不是唯一的方式。为了让遍历的方式更加优雅,出现了流 stream。
下面小编展示一下具体用法:

/**
 * @author: 
 * @description:
 * @date: 2022/3/11
 **/
public class StreamTest {

    @Builder
    @Data
    static class Card {
        private final String name;
        private final String sex;
    }
    
    public static void main(String[] args) {
        List<Card> list = new  ArrayList<> ();
        Card card1 = Card.builder().name("1").sex("11").build();
        Card card2 = Card.builder().name("1").sex("22").build();
        Card card3 = Card.builder().name("3").sex("33").build();
        
        list.add(card1);
        list.add(card2);
        list.add(card3);

		// 通过stream() 输出list中,每个元素的name, sex 值
        List<String> collectName = list.stream().map(Card::getName).collect(Collectors.toList());
        List<String> collectSex = list.stream().map(Card::getSex).collect(Collectors.toList());
        System.out.println("====collectName: " + collectName);
        System.out.println("====collectSex: " + collectSex);

		//通过stream() 输出list中,name值等于1的第一个元素
        Optional<Card> first = list.stream().filter(item -> {
            return "1".equals(item.getName());
        }).findFirst();
        System.out.println("====first: " + first.get());

		//通过stream() 输出list中,所有name值等于1的元素
        List<Card> collect = list.stream().filter(item -> {
            return "1".equals(item.getName());
        }).collect(Collectors.toList());
        System.out.println("====collect: " + collect);
    }
}

输出:

"C:\Program Files (x86)\Java\jdk1.8.0_31\bin\java.exe"....
====collectName: [1, 1, 3]
====collectSex: [11, 22, 33]
====first: StreamTest.Card(name=1, sex=11)
====collect: [StreamTest.Card(name=1, sex=11), StreamTest.Card(name=1, sex=22)]

Process finished with exit code 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮皮克克

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值