JDK8特性之流计算

JDK8特性之流计算

1.什么是jdk?

jdk就是我们的开发工具包,里面有封装好的很多类,今天讲的Stream就是其中一个工具类
流非常重要,对于我们看懂别人的代码阿,简化计算阿,计算速度提升都有很大帮助

2.普通的数据结构集合怎么转换成流

Stream<Integer> stream=Stream.of(1,2,3);
ArrayList<String> list=new ArrayList<>();
list.add("你好")
Stream<Integer> stream=Stream.of(list);  //集合转换为流
//set和map也是一样,map要先转换成Collection对象

//经常用的转换方式
list.stream();
int[] arr={1,2,3};
arr.stream();

第二种比较方便,直接简单

3.流的API


3.1 终结方法

一旦用了下面两个方法,那么链式编程就不能再点下去了,会出异常,因为流关闭了

list.stream().foreach(name->system.out.println(name))//遍历输出名字
list.stream().count();//计数

3.2 链式方法

list.stram().skip(2);//跳过前面2个
list.stram().skip(2).limit(1);//跳过前面2个后取新的最前面的第一个
list.stream().map((name)-> new Person(name))//转换成一个person对象,map方法就是转换类型的
list.stream().filter((name)-> name.length()==2)//过滤器,过滤出自己想要的结果

以上是列举最重要的出来

3.3 完整实例

要求输出person对象前两个人

import java.util.ArrayList;

class Person{
    String name;
    Person(){
        this.name=null;
    }
    Person(String name){
        this.name=name;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                '}';
    }
}
public class Stream {
    public static void main(String[] args) {
        ArrayList<String> list=new ArrayList<>();
        list.add("李白");
        list.add("张三");
        list.add("李四");
        list.add("王五");
        list.add("赵六");
      //  list.stream().forEach((name)-> System.out.println(name));
      //  list.stream().filter((String name)->{return name.startsWith("李");});
        list.stream().filter((name)-> name.length()==2).map((name)-> new Person(name)).limit(2).forEach(name-> System.out.println(name));
    }
}

多练一练,花个半小时就学会了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值