为了账号安全,请及时绑定邮箱和手机立即绑定

【金秋打卡】第九天+Lambda的集合

标签:
Java

课程名称:一课掌握Lambda表达式语法及应用

课程章节:第四章第四节

主讲老师:大牧莫邪


课程内容:

8:Stream操作集合中数据

public class test4 {
   public static void main(String[] args) {
//        1:批量数据
//        多个数据
       Stream stream = Stream.of("admin","hh","oh");

//        数组
       String[] arr = {"arr","hh","tom"};
       Stream stream1 = Arrays.stream(arr);

//        列表
       List<String> list = new ArrayList<>();
       list.add("admin");
       list.add("hh");
       Stream stream2 = list.stream();

//        集合
       Set<String> set = new HashSet<>();
       set.add("admin");
       set.add("hh");
       Stream stream3 = set.stream();

//        Map
       Map<Object, Object> map = new HashMap<>();
       map.put("admin", "admin");
       map.put("hh", "hh");
       Stream stream4 = map.entrySet().stream();

//        2:Stream对于基本数据类型的功能封装
//        IntStream.of(new int[] {10, 20, 30}).forEach(System.out::println);
//        IntStream.range(1, 5).forEach(System.out::println);   //不包含最后一个元素
//        IntStream.rangeClosed(1, 5).forEach(System.out::println);   //包含最后一个元素

//        3:Stream对象 ->  转换得到指定类型
//        数组
//        Object[] objx = stream.toArray(String[]::new);   //stream一旦被使用,就会闭合,没有数据了,所以需要注释

//        字符串
//        String str = stream.collect(Collectors.joining()).toString();
//        System.out.println(str);

       //列表
//        List<String> streamList = (List<String>) stream.collect(Collectors.toList());
//        System.out.println(streamList);
       //集合
//        Set<String> streamSet = (Set<String>) stream.collect(Collectors.toSet());
//        System.out.println(streamSet);
       //map
       Map<String,String> streamMap = (Map<String, String>) stream.collect(Collectors.toMap(x->x, y->"value:"+y));
//        System.out.println(streamMap);

//        Stream中常见的API操作
       List<String> accountList = new ArrayList<>();
       accountList.add("admin");
       accountList.add("hh");
       accountList.add("bb");

       //map() 中间操作,map()方法接收一个Functional接口
//        accountList = accountList.stream().map(x->"hero:" + x).collect(Collectors.toList());  //list转为Map,再转为list

       //filter() 添加过滤条件,过滤符合条件的用户
//        accountList = accountList.stream().filter(x-> x.length() >=5).collect(Collectors.toList());

       //ForEach 增强型循环
//        accountList.forEach(x-> System.out.println("forEach->" + x));

       //peek() 中间操作:迭代数据完成数据的依次处理
       /*accountList.stream()
               .peek(x-> System.out.println("peek 1:" + x))
               .peek(x-> System.out.println("peek 2:" + x))
               .forEach(System.out::println);*/
//        accountList.forEach(System.out::println);

       // Stream中对于数字运算的支持
       List<Integer> intList = new ArrayList<>();
       intList.add(10);
       intList.add(20);
       intList.add(30);
       intList.add(40);
       intList.add(50);
       intList.add(50);
       intList.add(50);

       //skip() 中间操作,有状态(对后续的数据是有影响的),跳过部分数据
//        intList.stream().skip(3).forEach(System.out::println);  //前三个数据被忽略,后续数据会被提取

//        limit() 中间操作,有状态,限制输出数据量
//        intList.stream().skip(3).limit(1).forEach(System.out::println);

//        distinct 中间操作,有状态,剔除重复数据
//        intList.stream().distinct().forEach(System.out::println);
//        sorted() 中间操作,有状态,排序
//        max()  获取最大值
       Optional optional = intList.stream().max((x, y)-> x-y);
//        System.out.println(optional.get());
//        min()  获取最小值
       Optional optional2 = intList.stream().min((x,y)-> x-y);
       System.out.println(optional2.get());
//        reduce() 合并处理数据
       Optional optional1 = intList.stream().reduce((sum, x)-> sum + x);
//        System.out.println(optional1.get());
   }
}



课程收获:


这节课主要学习了Lambda中的集合及其用法,只能说,方便,是真的方便,之前从来没有发现这个优势,之前只是感觉Lambda的方式很标新立异,学到这里感觉这东西很牛!需要好好复习!


加油了,同志们


https://img3.sycdn.imooc.com/63578afb0001be9c16501057.jpg




点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
6
获赞与收藏
5

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消