Stream流儿~流儿~流儿~

Ok fine 让我们开始吧彦祖们

来吧上来先for example(For一个zan po)

给一堆名字找出来其中姓zhang的彦祖,要第二、三个人

来吧practice一下(show一下my的English level)

1.emm有点麻烦

 2.好像也没啥区别哇

3. 这个怎么说呢反正你1.8以下是用不了

 让我们切换一个jdk1.8

红了吧彦祖们 

再切回来,你看看不红了不红了

欸~那为什么呢这是为什么呢xdm,咱也不造呀查一下

 哦~原来是1.9以后才发明的呀,你们知道了嘛彦祖们

 

那让我们来完成这个题吧这点小问题难不倒彦祖们吧!

 

 那让我们用stream来试试吧

怎么样彦祖们是不是很容易是不是嘎嘎牛

流的创建

 下面我们来看看流的创建

1.List创建

2. Set创建

可以保证数据的唯一性

3.Map创建

键不可重复

4.Stream创建

5.Collection集合创建

 

 6.Array数组创建

中间符操作

1.filter

public static void main(String[] args) {
    int[] arr = {1,2,6,8,2,3,8};
    Arrays.stream(arr).filter(intV -> intV > 5).forEach(s -> System.out.println(s));
}

2. map

map()方法是一个映射操作,它接受一个函数作为参数,并将该函数应用于流中的每个元素。这个函数会将输入元素转换为一个新的元素,然后将这个新元素放入一个新的流中。换句话说,map()方法会将一个流中的元素映射成为另一个流中的元素。

List<Employee> employees = Arrays.asList(
        new Employee("John", 25),
        new Employee("Jane", 30),
        new Employee("Bob", 35));
employees.stream().map(Employee::getName).forEach(System.out::println);

3.dictinct

List<Integer> list = List.of(3, 3, 3, 5, 1,5,6, 2, 1, 5, 6, 85, 202);
list.stream().distinct().forEach(System.out::println);

4.sorted

List<Employee> employees = Arrays.asList(
        new Employee("John", 25),
        new Employee("Jane", 37),
        new Employee("Bob", 35));
employees.stream()
        .sorted(Comparator.comparing(Employee::getAge).reversed())
        .collect(Collectors.toList())
        .forEach(System.out::println);

那真是ku dang 里着火----------当然了,各位彦祖们要记得重写toString方法哦要不然出来的回事这样的 

那我肯定写的是对的(极其嘴硬!!!好吧我当时就是这样的找了老半天发现是这个低端错误)。

5.skip

List<Integer> list = List.of(3, 3, 3, 5, 1,5,6, 2, 1, 5, 6, 85, 202);
list.stream().skip(6).forEach(System.out::println);

6.limit

List<Integer> list = List.of(3, 3, 3, 5, 1,5,6, 2, 1, 5, 6, 85, 202);
list.stream()
        .skip(6)
        .limit(1)
        .forEach(System.out::println);

7.concat

将两个流合并成一个流

List<String> list = Arrays.asList("张三", "李四", "王二麻子", "李大狗蛋儿", "张坤坤", "王大壮士", "张三丰", "张背带裤", "张太美");
Stream<String> s1 = list.stream().skip(2);
Stream<String> s2 = list.stream().limit(5);
Stream.concat(s1,s2).forEach(System.out::println);

终端符操作

1.forEach

这个就不赘述啦,相信以各位彦祖们的肯定都会!

2.count

3.max

4.min

 5.sum

6.findFirst

找出第一个姓王的人

List<String> list = Arrays.asList("张三", "李四", "王二麻子", "李大狗蛋儿", "张坤坤", "王大壮士", "张三丰", "张背带裤", "张太美");
System.out.println(list.stream()
        .filter(s -> s.startsWith("王"))
        .findFirst());

7.collect

1)toList

List<String> list = Arrays.asList("张三-3", "李四-5", "王二麻子-28", "李大狗蛋儿-37", "张坤坤-8", "王大壮士-32", "张三丰-108", "张背带裤-36", "张太美-95");
List<String> collect = list.stream().filter(s -> Integer.parseInt(s.split("-")[1]) > 12).collect(Collectors.toList());
System.out.println(collect);

2)toSet

List<Integer> list = List.of(3, 3, 3, 5, 1,5,6, 2, 1, 5, 6, 85, 202);
Set<Integer> collect = list.stream().collect(Collectors.toSet());
System.out.println(collect);

3)toMap

List<String> list = Arrays.asList("张三-3", "李四-5", "王二麻子-28", "李大狗蛋儿-37", "张坤坤-8", "王大壮士-32", "张三丰-108", "张背带裤-36", "张太美-95");
Map<String, Integer> map = list.stream()
        .collect(Collectors.toMap(s -> s.split("-")[0], s -> Integer.parseInt(s.split("-")[1])));
System.out.println(map);

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值