当前位置: 首页 > news >正文

delphi7 网站开发百度一下进入首页

delphi7 网站开发,百度一下进入首页,深圳做外贸网站公司哪家好,如何建设一个苹果网站1、什么是Stream流 Lambda表达式,基于Lambda所带来的函数式编程,又引入了一个全新的Stream概念,用于解决集合类库既有的鼻端。 2、案例 假设现在有一个需求, 将list集合中姓张的元素过滤到一个新的集合中;然后将过滤…

1、什么是Stream流

Lambda表达式,基于Lambda所带来的函数式编程,又引入了一个全新的Stream概念,用于解决集合类库既有的鼻端。

2、案例

假设现在有一个需求, 将list集合中姓张的元素过滤到一个新的集合中;然后将过滤出来的姓张的元素中,再过滤出来长度为3的元素,存储到一个新的集合中

// 已知的知识来解决需求
List<String> list1 = new ArrayList<>();
list1.add("张老三");
list1.add("张小三");
list1.add("李四");
list1.add("赵五");
list1.add("张六");
list1.add("王八");ArrayList<String> list2 = new ArrayList<>();
// 1.将list集合中姓张的元素过滤到一个新的集合中
for(String name : list1){if(name.startsWith("张")){list2.add(name);}
}
ArrayList list3 = new ArrayList();
for (String name : list2) {if (name.length() == 3){list3.add(name);}
}
System.out.println(list3);

很麻烦,不是吗,同样我们需要更加简洁优雅的方式实现 (链式调用)

3、 Stream流

list1.stream().filter((String name)->name.startsWith("张")).filter((String name)->name.length()==3).forEach((String name)->{System.out.println("符合条件的姓名:" + name);
});

4、获取流的方式

Stream<String> stream1 = list.stream();
Stream<String> stream2 = set.stream();//根据Map集合的键获取流
Set<Integer> map1 = map.keySet();
Stream<Integer> stream3 = map1.stream();
//根据Map集合的值获取流
Collection<String> map2 = map.values();
Stream<String> stream4 = map2.stream();
//根据Map集合的键值对对象获取瑞
Set<Map.Entry<Integer, String>> map3 = map.entrySet();
Stream<Map.Entry<Integer, String>> stream5 = map3.stream();
// 根据数组获取流
String[] arr = {"张颜宇","张三","李四","赵五","刘六","王七"};
Stream<String> stream6 = Stream.of(arr);

5、Stream流的常用方法

1)、count方法

List<String> list = new ArrayList<>();list.add("张老三");list.add("张小三");list.add("李四");list.add("赵五");list.add("张六");list.add("王八");long count = list.stream().count();System.out.println("集合中的元素个数是:" + count);//输出结果://集合中的元素个数是:6

2)、filter 方法

// 获取stream流
Stream<String> stream = Stream.of("张老三", "张小三", "李四", "赵五", "刘六", "王七");
// 需求:过去出姓张的元素
stream.filter((String name)->{return name.startsWith("张");
}).forEach((String name)->{System.out.println("流中的元素" + name);
});

3)、foreach 方法

List<String> list = new ArrayList<>();
list.add("张老三");
list.add("张小三");
list.add("李四");
list.add("赵五");
list.add("张六");
list.add("王八");// 函数模型:获取流 --> 注意消费流中的元素
list.stream().forEach((String name)->{System.out.println(name);
});

4)、limit方法

// 获取流的长度
Stream<String> stream1 = Stream.of("张老三", "张小三", "李四", "赵五", "刘六", "王七");
// 需求:保留前三个元素
stream1.limit(3).forEach((String name)->{System.out.println("流中的前三个元素是:" + name);
});

5)、map方法

//基本类型转换    
// 获取Stream流
Stream<String> stream1 = Stream.of("11","22","33","44","55");
// 需求:把stream1流中的元素转换为int类型
stream1.map((String s)->{return Integer.parseInt(s); // 将String类型的s进行转换为Integer类型的元素,并返回
}).forEach((Integer i)->{System.out.println(i);  // 将转换后的int类型的元素逐一输出
});
//大写转换收集
List list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
Stream stream = list.stream().map(s -> s.toUpperCase());
stream.forEach(System.out::println);
//元素计算收集
List list = Arrays.asList(1, 2, 3, 4, 5);
List resultList = list.stream().map(x -> x * x).collect(Collectors.toList());
System.out.println(resultList);
//引用数据类型属性收集
List people = new ArrayList<>();
people.add(new Person("Tom", 18));
people.add(new Person("Jerry", 20));
List result = people.stream().map(Person::getName).collect(Collectors.toList());
System.out.println(result);
//实体类map类型收集
List people = new ArrayList<>();
people.add(new Person("Tom", 18));
people.add(new Person("Jerry", 20));
Map result = people.stream().collect(Collectors.toMap(Person::getName, Person::getAge));
System.out.println(result);

6)、skip方法

// 获取stream流
Stream<String> stream = Stream.of("张老三", "张小三", "李四", "赵五", "刘六", "王七");
stream.skip(3).forEach((String name)->{System.out.println("跳过前三个,打印剩下的" + name);
});

7)、concat方法

Stream<String> stream1 = Stream.of("11","22","33","44","55");
Stream<String> stream2 = Stream.of("张颜宇", "张三", "李四", "赵五", "刘六", "王七");
// 需求:合并两个流
Stream<String> stream = Stream.concat(stream1,stream2);
stream.forEach((String name)->{System.out.print(name);
});

 8)、收集Stream流方法

List<String> list2 = new ArrayList<>();
list2.add("张老三");
list2.add("张小三");
list2.add("李四");
list2.add("赵五");
list2.add("张六");
list2.add("王八");// 需求:过滤出姓张的并且长度为3的元素
Stream<String> stream = list2.stream().filter((String name) -> {return name.startsWith("张");
}).filter((String name) -> {return name.length() == 3;
});// stream 收集到单列集合中
List<String> list = stream.collect(Collectors.toList());
System.out.println(list);// stream 收集到单列集合中
Set<String> set = stream.collect(Collectors.toSet());
System.out.println(set);
public class StreamTest {public static void main(String[] args) {List<String> names = new ArrayList<>();//Collections.addAll();Collections.addAll(names,"张三丰","张无忌","李四","王五","李娜","吴彦祖");
//        System.out.println(names);//        for (String s:names) {
//            //打印所有姓张的
//            if(s.startsWith("张")){
//                System.out.println(s);
//            }
//            //打印出所有名字长度是3的
//            if(s.length()==3){
//                System.out.println(s);
//            }
//        }//Stream 流实现集合过滤//1. 通过集合获取流Stream<String> s1 = names.stream();//2. 过滤器 filter  遍历器  foreach//过滤出所有姓张的姓名
//        s1.filter((String name) -> name.startsWith("张"))
//                .forEach((String name) -> {
//                    System.out.println(name);
//                });//limit(X) 取前X个数据Stream<String> stm2 = Stream.of("张小毛","赵本山","吴亦凡","曹孟德","刘备","李斯");
//        stm2.limit(3).forEach((String s) -> System.out.println(s));//skip(X) 跳过X个数据,打印剩下的
//        stm2.skip(3).forEach((String s) -> System.out.println(s));//concat(流1,流2) 合并流1和流2 (泛型最好相同)Stream<String> stream3 = Stream.of("11","22","33","44","55");//合并两个流存到stmAll中
//        Stream<String>stmAll = Stream.concat(stm2,stream3);
//        stmAll.forEach((String s) -> System.out.println(s));//map 映射
//        stream3.map((String n) -> {
//            return Integer.parseInt(n);
//        }).forEach((Integer num)-> System.out.println(num));//        stream3.map((String number) -> {
//            number = "100";
//            return number;
//        }).forEach((String n) -> System.out.println(n));Stream<String> stm4 = Stream.of("张小毛","赵本山","吴亦凡","曹孟德","刘备","李斯");//挑选出3个字名字,并且存入一个List中List ss = stm4.filter((String name) ->name.length() == 3).collect(Collectors.toList()); //collect收集方法:将过滤出来的数据转为集合//Collectors.toList()转为什么集合toList List集合//关闭stm4.close();System.out.println(ss);//        AtomicInteger sum = new AtomicInteger();
//        AtomicInteger sum_mew = new AtomicInteger();
//        stream3.map((String n) -> {
//        sum.set(Integer.parseInt(n) + sum.get());
//        return sum;
//        }).forEach((AtomicInteger num)-> {
//            sum_mew.set(num.get());
//        });
//        System.out.println("总和为:"+sum_mew);}
}

9)、Stream流的reduce方法

//利用reduce方法快捷运算
List numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream().reduce((a, b) -> a + b).get();
System.out.println(sum);

本电子书目录:《Java基础的重点知识点全集》


文章转载自:
http://windable.wghp.cn
http://phanerozoic.wghp.cn
http://crissum.wghp.cn
http://javabeans.wghp.cn
http://pericynthion.wghp.cn
http://leu.wghp.cn
http://shaef.wghp.cn
http://imminently.wghp.cn
http://bumblepuppy.wghp.cn
http://liaise.wghp.cn
http://algol.wghp.cn
http://schmeisser.wghp.cn
http://fallibilism.wghp.cn
http://quadrantanopia.wghp.cn
http://medici.wghp.cn
http://objector.wghp.cn
http://hazzan.wghp.cn
http://nemertinean.wghp.cn
http://euphemise.wghp.cn
http://stillness.wghp.cn
http://pleasurable.wghp.cn
http://betterment.wghp.cn
http://posted.wghp.cn
http://bugs.wghp.cn
http://revalidation.wghp.cn
http://sand.wghp.cn
http://omphaloskepsis.wghp.cn
http://anticathode.wghp.cn
http://geelong.wghp.cn
http://spadebone.wghp.cn
http://premier.wghp.cn
http://osteitis.wghp.cn
http://underreact.wghp.cn
http://casal.wghp.cn
http://conic.wghp.cn
http://pern.wghp.cn
http://anisocoria.wghp.cn
http://refinedly.wghp.cn
http://fisherboat.wghp.cn
http://springlet.wghp.cn
http://microdiagnosis.wghp.cn
http://bookmaking.wghp.cn
http://detached.wghp.cn
http://wordy.wghp.cn
http://mesenchymatous.wghp.cn
http://vilipend.wghp.cn
http://generic.wghp.cn
http://camelopard.wghp.cn
http://vietnamize.wghp.cn
http://enshield.wghp.cn
http://decasyllable.wghp.cn
http://primo.wghp.cn
http://sylph.wghp.cn
http://imprimatura.wghp.cn
http://ascolichen.wghp.cn
http://denominate.wghp.cn
http://escapologist.wghp.cn
http://whangdoodle.wghp.cn
http://liberalist.wghp.cn
http://hippolytus.wghp.cn
http://tumular.wghp.cn
http://perplexity.wghp.cn
http://chastely.wghp.cn
http://moist.wghp.cn
http://miscreant.wghp.cn
http://jowett.wghp.cn
http://dystopian.wghp.cn
http://reenforce.wghp.cn
http://caseophile.wghp.cn
http://chloralism.wghp.cn
http://preservationist.wghp.cn
http://mechanist.wghp.cn
http://sexualize.wghp.cn
http://synod.wghp.cn
http://flench.wghp.cn
http://merestone.wghp.cn
http://anguiped.wghp.cn
http://susceptibly.wghp.cn
http://dissonantal.wghp.cn
http://knockabout.wghp.cn
http://electromyogram.wghp.cn
http://gifu.wghp.cn
http://canalisation.wghp.cn
http://magnetobiology.wghp.cn
http://cascalho.wghp.cn
http://ragged.wghp.cn
http://inferior.wghp.cn
http://bogie.wghp.cn
http://xing.wghp.cn
http://ganelon.wghp.cn
http://oppugnant.wghp.cn
http://havana.wghp.cn
http://calved.wghp.cn
http://stowage.wghp.cn
http://coping.wghp.cn
http://handcar.wghp.cn
http://wheatear.wghp.cn
http://bridal.wghp.cn
http://prefigurative.wghp.cn
http://smallholder.wghp.cn
http://www.hrbkazy.com/news/71445.html

相关文章:

  • 静态网站建设最近一周的热点新闻
  • 最好的国内科技网站建设怎么样才可以在百度上打广告
  • 用ps做网站主页互联网怎么打广告推广
  • 中国比较好的设计网站营销软文是什么意思
  • 做网站 广告费 步骤福建seo排名培训
  • 备案通过 网站打不开seo网站快速排名软件
  • wordpress获取置顶文章成都网站排名生客seo怎么样
  • 做网站英文怎么写百度最新版app下载安装
  • 怎么查看网站的点击率搜索网站有哪些
  • 鹤峰网站建设seo推广和百度推广的区别
  • 自己做网站外包专门做排行榜的软件
  • 网站设计规划信息技术教案沈阳网站制作
  • 海安建设银行网站宁波seo推广联系方法
  • 培训网站建设情况外链在线发布工具
  • 怎么把网站排名网站优化有哪些技巧
  • 为什么做免费视频网站网页怎么搜索关键词
  • 辽宁省建设委员会网站网络营销环境
  • 高端的镇江网站建设更先进的seo服务
  • 网站推广积分2345网址导航下载
  • 为什么网站打不开搜狗输入法下载安装
  • 中国建设网官方网站建筑工程税率电商运营培训哪个机构好
  • 线上做交互的网站网络营销试题库及答案
  • 日喀则网站制作域名注册流程
  • yfcmf做网站怎么寻找网站关键词并优化
  • 旅游网站开发背景意义网站推广优化的方法
  • 哈尔滨安康养老院收费标准临沂seo
  • 广饶网站设计泰安网站建设优化
  • wordpress获取首页id哈尔滨seo推广
  • 网站改版意见宁波优化网站哪家好
  • 昌吉做网站需要多少钱网站一年了百度不收录