第14章,lambda表达式与流处理例题

package 例题;import java.util.List;
import java.util.stream.Collectors;
import java.util. stream.Stream;public class 例题19 {		public static void main(String[] args){List<例题14> list = 例题14.get例题14List();//获取公共类的测试数据Stream<例题14> stream = list.stream();//获取集合流对象stream = stream.filter(people ->"女".equals(people.getSex()));//将所有女员工过滤出来stream = stream.limit(2);//取出前两位List<例题14> result = stream.collect(Collectors.toList());//将流对象重新封装成一个List集合for (例题14 emp : result) {//遍历结果集System.out.println(emp);//输出员工对象信息}}}

 

package 例题;
interface SayHi{	//创建打招呼接口String say();	//打招呼方法
}public class 例题1 {public static void main(String[] args) {//lambda表达式实现打招呼接口,返回抽象方法结果SayHi hi = ()->"你好啊!这是lambda表达式";System.out.println(hi.say());}}

 

package 例题;
interface cf{//构造方法接口例题10 action();//调用无参构造方法
}
public class 例题10 {//测试类public 例题10() {//无参构造方法System.out.println("调用无参构造方法");}public 例题10(int i) {//有参构造方法System.out.println("调用有参构造方法");}public static void main(String[] args) {cf a = 例题10::new;//引用测试类的构造方法例题10 b = a.action();//通过无参方法创建对象}}

 

package 例题;
interface cf2{//构造方法接口例题11 action(int i);//调用无参构造方法
}
public class 例题11 {//测试类public 例题11() {//无参构造方法System.out.println("调用无参构造方法");}public 例题11(int i) {//有参构造方法System.out.println("调用有参构造方法,参数为:" + i);}public static void main(String[] args) {cf2 a = 例题11::new;//引用测试类的构造方法例题11 b = a.action(123);//通过无参方法创建对象}}

 

package 例题;
interface ac<T>{//构造方法接口T action(int n);//抽象方法返回对象数组,方法参数决定数组个数
}
public class 例题12 {public static void main(String[] args) {ac<例题12[]> a = 例题12[]::new;//引用数组的构造方法例题12 arr[] = a.action(3);//接口创建数组,并指定数组个数arr[0] = new 例题12();//给数组元素实例化arr[1] = new 例题12();arr[2] = new 例题12();arr[3] = new 例题12();//如果调用或者给arr[3]赋值,代码则会抛出数组下标越界异常}}

 

package 例题;import java.util.function.Function;public class 例题13 {//创建Function接口对象,参数类型是Integer[],返回值是StringFunction<Integer[], String> f = (n)->{StringBuilder str = new StringBuilder();//创建字符序列for(Integer num : n) {//遍历参数数组str.append(num);//字符序列添加数组元素str.append('.');//字符序列添加字符'.'}str.deleteCharAt(str.length()-1);//删除末尾的'.'return str.toString();//返回字符串};public static void main(String[] args) {// TODO Auto-generated method stubInteger[] ip = {192, 168, 1, 1};//带处理的数组例题13 d = new 例题13();System.out.println(d.f.apply(ip));//输出处理结果}}

 

package 例题;import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;public class 例题28{public static void main(String[] args) {// TODO Auto-generated method stubList<例题14> list = 例题14.get例题14List();Stream<例题14>stream=list.stream();Map<String,List <例题14>> map = stream.collect(Collectors.groupingBy(例题14::getDept));Set<String>depts=map.keySet();for(String dept:depts) {System.out.println(dept+"员工信息如下:");List<例题14>temp=map.get(dept);for(例题14 e:temp) {System.out.println(e);}System.out.println();}}}

 

package 例题;import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;public class 例题29 {public static void main(String[] args) {List<例题14> list = 例题14.get例题14List(); // 获取公共类的测试数据Stream<例题14> stream = list.stream(); // 获取集合流对象// 一级分组规则方法,按照员工部门进行分级Function<例题14, String> deptFunc = 例题14::getDept;// 二级分组规则方法,按照员工部门进行分级Function<例题14, String> sexFunc = 例题14::getSex;// 将流中的数据进行二级分组,先对员工部分进行分组,在对员工性别进行分组Map<String, Map<String, List<例题14>>> map = stream.collect(Collectors.groupingBy(deptFunc, Collectors.groupingBy(sexFunc)));// 获取Map的中的一级分组键集合,也就是部门名称集合Set<String> deptSet = map.keySet();for (String deptName : deptSet) { // 遍历部门名称集合// 输出部门名称System.out.println("【" + deptName + "】 部门的员工列表如下:");// 获取部门对应的二级分组的Map对象Map<String, List<例题14>> sexMap = map.get(deptName);// 获得二级分组的键集合,也就是性别集合Set<String> sexSet = sexMap.keySet();for (String sexName : sexSet) { // 遍历部门性别集合// 获取性别对应的员工集合List<例题14> emplist = sexMap.get(sexName);System.out.println("    【" + sexName + "】 员工:"); // 输出性别种类for (例题14 emp : emplist) {// 遍历员工集合System.out.println("        " + emp); // 输出对应员工信息}}}}
}

package 例题;import java.util.List;
import java.util.Optional;
import java.util.stream.Stream;
public class 例题26 {public static void main(String[] args) {// 获取公共类的测试数据List<例题14> list = 例题14.get例题14List();Stream<例题14> stream = list.stream();             // 获取集合流对象// 过滤出21岁的员工stream = stream.filter(people -> people.getAge() == 21);Optional<例题14> young = stream.findFirst();      // 获取第一个元素例题14 emp = young.get();                           // 获取员工对象System.out.println(emp);                              // 输出结果}
}

 

package 例题;import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;public class 例题16 {//输出集合元素static void ph(String mes, List list) {System.out.println(mes);//输出文字信息list.stream().forEach(n->{//使用forEach方法遍历集合并打印元素System.out.println(n + "");});System.out.println();}public static void main(String[] args) {// 创建空数组List<Integer> list = new ArrayList<>();for(int i = 1; i <= 10; i++) {//从1循环到10list.add(i);//从集合赋值}ph("集合原有元素:" ,list);//输出集合元素Stream<Integer> stream = list.stream();//获取集合流对象//将集合中的所有奇数过滤出来,把过滤结果重新赋值给流对象stream = stream.filter(n -> n % 2 == 1);//将流对象重新封装成一个List集合List<Integer> re = stream.collect(Collectors.toList());ph("过滤之后的集合元素:" , re);//输出集合元素}}

 

package 例题;import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;public class 例题17 {public static void main(String[] args) {List<例题14> list = 例题14.get例题14List();//获取公共类的测试数据Stream<例题14> stream = list.stream();//获取集合流对象stream = stream.filter(people->people.getAge()>30);//将年龄大于30岁的员工过滤出来List<例题14> rt = stream.collect(Collectors.toList());//将流对象重新封装成一个List集合for(例题14 emp : rt) {//遍历结果集System.out.println(emp);//输出员工对象信息}}}

 

package 例题;import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collector;
import java.util.stream.Collectors;
import java.util.stream.Stream;public class 例题18 {static void ph(String me, List list) {System.out.println(me);list.stream().forEach(n->{System.out.print(n+"");});System.out.println();}public static void main(String[] args) {List<Integer> list = new ArrayList<Integer>();list.add(1);list.add(2);list.add(2);list.add(3);list.add(3);ph("去重前:",list);Stream<Integer> stream = list.stream();stream = stream.distinct();List<Integer> rt = stream.collect(Collectors.toList());ph("去重后:" ,rt);}}

 

package 例题;
interface Addition{//加法接口int add(int a,int b);//加法抽象方法
}
public class 例题2 {public static void main(String[] args) {//lambda表达式实现加法接口,返回参数相加结果Addition ad = (x,y)->x+y;int result = ad.add(15, 16);System.out.println("相加结果; " + result);}}

 

package 例题;import java.util.List;
import java.util.stream.Collectors;
import java.util. stream.Stream;
public class 例题20 {   public static void main(String[] args) {// TODO Auto-generated method stubList<例题14> list = 例题14.get例题14List();//获取公共类的测试数据Stream<例题14> stream = list.stream();//获取集合流对象stream = stream.filter(people ->"男".equals(people.getSex()));//将所有男员工过滤出来stream = stream.skip(2);//跳过前两位List<例题14> result = stream.collect(Collectors.toList());//将流对象重新封装成一个List集合for (例题14 emp : result) {//遍历结果集System.out.println(emp);//输出员工对象信息}}}

 

package 例题;import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;public class 例题21 {public static void main(String[] args) {List<例题14> list = 例题14.get例题14List();          // 获取公共类的测试数据Stream<例题14> stream = list.stream();              // 获取集合流对象// 将所有开发部的员工过滤出来stream = stream.filter(people -> "开发部".equals(people.getDept()));// 将所有员工的名字映射成一个新的流对象Stream<String> names = stream.map(例题14::getName);// 将流对象重新封装成一个List集合List<String> result = names.collect(Collectors.toList());for (String emp : result) {                              // 遍历结果集System.out.println(emp);                             // 输出所有姓名}}
}

 

package 例题;import java.util.List;
import java.util.stream.DoubleStream;
import java.util.stream.Stream;
public class 例题22 {public static void main(String[] args) {List<例题14> list = 例题14.get例题14List();      // 获取公共类的测试数据Stream<例题14> stream = list.stream();          // 获取集合流对象// 将所有开发部的员工过滤出来stream = stream.filter(people -> "销售部".equals(people.getDept()));// 将所有员工的名字映射成一个新的流对象DoubleStream salarys = stream.mapToDouble(例题14::getSalary);// 统计流中元素的数学总和double sum = salarys.sum();System.out.println("销售部一个月的薪资总额:"+sum);}
}

 

package 例题;import java.util.List;
import java.util.stream.Stream;public class 例题23 {public static void main(String[] args) {List<例题14> list = 例题14.get例题14List();       // 获取公共类的测试数据Stream<例题14> stream = list.stream();           // 获取集合流对象// 判断所有员工的年龄是否都大于25boolean result = stream.allMatch(people -> people.getAge() > 25);System.out.println("所有员工是否都大于25岁:" + result);  // 输出结果}
}

 

package 例题;import java.util.List;
import java.util.stream.Stream;
public class 例题24 {public static void main(String[] args) {List<例题14> list = 例题14.get例题14List();     // 获取公共类的测试数据Stream<例题14> stream = list.stream();         // 获取集合流对象// 判断员工是否有的年龄大于等于40boolean result = stream.anyMatch(people -> people.getAge() >= 40);System.out.println("员工中有年龄在40或以上的吗?:" + result); // 输出结果}
}

 

package 例题;import java.util.List;
import java.util.stream.Stream;
public class 例题25 {public static void main(String[] args) {List<例题14> list = 例题14.get例题14List();        // 获取公共类的测试数据Stream<例题14> stream = list.stream();            // 获取集合流对象// 判断公司中是否不存在薪资小于2000的员工?boolean result = stream.noneMatch(people -> people.getSalary() <2000 );System.out.println("公司中是否不存在薪资小于2000元的员工?:" + result);// 输出结果}
}

 

package 例题;interface CG3{String ck(int a);
}public class 例题3 {public static void main(String[] args) {// lambda表达式//a为参数CG3 c = (a) -> {//判断语句if(a >= 90 && a <= 100) {return "成绩为优";}if(a >= 80 && a <= 90) {return "成绩为良";}if(a >= 60 && a <= 80) {return "成绩为中";}if(a >= 0 && a <= 60) {return "成绩为差";}return "成绩无效";};//调用ck方法传入参数进行判断,输出结果System.out.println(c.ck(50));}}

 

package 例题;interface CG4{//测试接口void ck();//测试方法
}public class 例题4 {public static void main(String[] args) {// 创建局部变量int v = 100;//实现测试接口CG4 c = () -> {//使用局部变量赋值int num = v - 90;//更改局部变量,此处报错,无法编译v = 12;};}}

 

package 例题;
//接口
interface CG5{String ck();
}public class 例题5 {//成员变量int v = 100;//成员方法public void acto() {//lambda补全方法体CG5 c = () ->{//局部变量v = 10;return null;};System.out.println("运行方法前v=" + v);c.ck();System.out.println("运行方法后v=" + v);}public static void main(String[] args) {// TODO Auto-generated method stub例题5 l = new 例题5();l.acto();}}

 

package 例题;import java.util.Scanner;interface An{	//防沉迷接口boolean ck(int age)throws UnderAgeException;//抽象检查方法,抛出用户未成年异常
}class UnderAgeException extends Exception{	//自定义异常public UnderAgeException(String message) {//有参构造方法super(message);//调用原有父类构造方法}
}public class 例题6 {public static void main(String[] args) {//lambda 表达式创建An对象,默认抛出原有异常An a = (b)->{if(b<18) {//如果年龄小于18throw new UnderAgeException("未满18周岁,开启防沉迷模式!");//抛出异常}else {return true;//返回通过}};//控制台扫描器Scanner sc = new Scanner(System.in);System.out.println("请输入年龄:");//提示int age = sc.nextInt();//获取用户输入的年龄try {			//前面抛出过异常,此处捕捉if(a.ck(age)) {//验证年龄System.out.println("欢迎━(*`∀´*)ノ亻!进入XX世界");}}catch(UnderAgeException e) {System.out.println(e);//打印异常}sc.close();//关闭扫描器}
}

 

package 例题;//接口
interface Add{int add(int a, int b);
}public class 例题7 {//静态方法static int add1(int x, int w){return x + w;}public static void main(String[] args) {//引用静态方法Add a1 = 例题7 :: add1;System.out.println("静态方法的引用:" + a1.add(8, 5));}}

 

package 例题;import java.text.SimpleDateFormat;
import java.util.Date;//创建接口
interface Dat{String method(Date date);}public class 例题8 {//创建方法public String format(Date date) {//创建日期格式化对象并设置格式SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//返回格式化结果return sdf.format(date);}public static void main(String[] args) {// 创建对象例题8 l1 = new 例题8();//利用对象引用方法Dat d1 = l1 :: format;//创建时间对象Date date = new Date();System.out.println("默认格式:" + date);System.out.println("接口输出的格式:" + d1.method(date));}}

 

package 例题;import java.util.HashSet;interface Pa<T>{//测试接口int md(T[] t);//抽象方法
}class PaDemo{//测试类//静态方法,使用泛型参数,在方法名之前定义泛型。此方法用于查找数组中的重复元素个数static public <T> int rt(T[] t) {int ah = t.length;//记录数组长度java.util.HashSet<T> set = new HashSet<>();//创建哈希集合for(T tmp : t) {//遍历数组set.add(tmp);}return ah - set.size();//返回数组长度与集合长度的差}
}
public class 例题9 {public static void main(String[] args) {Integer a[] = {1, 1, 2, 3, 1, 5, 6, 1, 8, 8};String s[] = {"王", "李", "赵", "陈", "李", "孙", "张"};//创建接口对象,integer作为泛型,引人PaDemo类的静态方法,方法名要定义泛型Pa<Integer> p1 = PaDemo::<Integer>rt;System.out.println("整数数组重复元素个数:" + p1.md(a));//调用接口方法创建接口对象,String作为泛型,引人PaDemo类的静态方法//方法名不定义泛型,则默认使用接口已定义好的泛型Pa<String> p2 = PaDemo::rt;System.out.println("字符串数组重复元素个数:" + p2.md(s));}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/136047.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Win11 Edge浏览器进入朔日考试系统(无纸化测评系统)的方法

Win11 Edge浏览器进入朔日考试系统&#xff08;无纸化测评系统&#xff09;的方法 笔记本型号&#xff1a;联想 使用浏览器&#xff1a;edge浏览器 操作系统&#xff1a;Windows11 网址&#xff1a;http://172.31.0.139/WZHEDU/ 注意:使用此方法打开edge浏览器会频繁出现弹窗&a…

派金SDK接入文档

一、接入SDK 1、将sdk文件手动导入到目标项目中&#xff0c;如下图所示&#xff1a; 2、该SDK需接入其他三方广告&#xff0c;通过pod的方式接入&#xff0c;在Profile中加入如下代码&#xff1a; pod GDTMobSDK, ~> 4.14.40pod BaiduMobAdSDK, ~> 5.313pod KSAdSDK…

猫罐头怎么选?千万别错过这5款好吃放心的猫罐头推荐!

猫罐头不仅美味可口&#xff0c;而且营养丰富&#xff0c;是专为猫咪打造的美食。那么&#xff0c;猫罐头怎么选&#xff1f;作为一位经营宠物店7年的店长&#xff0c;我对猫猫的饮食都非常重视&#xff0c;也见证了很多猫咪品尝各种猫罐头的瞬间&#xff0c;现在我对各个品牌的…

0基础学习VR全景平台篇第119篇:利用蒙版航拍补天 - PS教程

上课&#xff01;全体起立~ 大家好&#xff0c;欢迎观看蛙色官方系列全景摄影课程&#xff01; 嗨&#xff0c;大家好。欢迎收看蛙色VR系列教程之PS利用蒙版航拍补天。 我们之前已经教过大家如何进行航拍调色&#xff0c;不知道大家学的怎么样呢&#xff1f; 会不会发现&…

VS Code+DevChat助力非专业开发也能玩转代码编程

一、前言 偶然间网上瞎逛&#xff0c;看到DevChat 发布了一款 VS Code 插件&#xff0c;可提供类似chatgpt一样的“一站式 AI 辅助编程”体验。据说&#xff0c; DevChat 直接对接 GPT-4 还让免费用&#xff0c;目前免费注册收邮件即可获取key&#xff0c;再也不用麻烦的外部手…

Flink(二)【Flink 部署模式】

前言 今天是Flink学习的第二天&#xff0c;我的心情异常的复杂哈哈哈&#xff08;苦笑&#xff09;&#xff0c;学习上还是比较顺利的&#xff0c;感情上我并不擅长&#xff0c;所以心情波动大在所难免。害&#xff0c;至少还有学习让我不被各种糟糕琐碎的日常生活里的人和事所…

Python(四)字符串

程序员的公众号&#xff1a;源1024&#xff0c;获取更多资料&#xff0c;无加密无套路&#xff01; 最近整理了一波电子书籍资料&#xff0c;包含《Effective Java中文版 第2版》《深入JAVA虚拟机》&#xff0c;《重构改善既有代码设计》&#xff0c;《MySQL高性能-第3版》&…

Vue3指令

Vue 指令&#xff08;Directives&#xff09;是 Vue.js 的一项核心功能&#xff0c;它们可以在 HTML 模板中以 v- 开头的特殊属性形式使用&#xff0c;用于将响应式数据绑定到 DOM 元素上或在 DOM 元素上进行一些操作。 Vue 指令是带有前缀 v- 的特殊 HTML 属性&#xff0c;它赋…

c语言练习第10周(1~5)

根据公式求和 输入样例20输出样例 534.188884 #include<stdio.h> #include<math.h> int main() {int i,n;scanf("%d", &n);double s 0,t0;for (i 1; i < n; i) {t t sqrt(i);s s t;}printf("%.6lf", s);return 0; } 第一行输入…

获取AAC音频的ADTS固定头部信息

文章目录 前言一、AAC音频中的ADTS二、解析ADTS信息1.标准文档中介绍2.解析3.采样率索引和值4.下载AAC标准文档 前言 调试嵌入式设备中播放aac音频的过程中&#xff0c;了解了aac音频格式&#xff0c;记录在此&#xff0c;防止遗忘。 一、AAC音频中的ADTS ADTS&#xff08;Audi…

深度学习 opencv python 实现中国交通标志识别 计算机竞赛

文章目录 0 前言1 yolov5实现中国交通标志检测2.算法原理2.1 算法简介2.2网络架构2.3 关键代码 3 数据集处理3.1 VOC格式介绍3.2 将中国交通标志检测数据集CCTSDB数据转换成VOC数据格式3.3 手动标注数据集 4 模型训练5 实现效果5.1 视频效果 6 最后 0 前言 &#x1f525; 优质…

思谋科技进博首秀:工业多模态大模型IndustryGPT V1.0正式发布

大模型技术正在引领新一轮工业革命&#xff0c;但将其应用于工业制造&#xff0c;仍面临许多挑战&#xff0c;专业知识的缺乏是关键难点。11月5日&#xff0c;香港中文大学终身教授、思谋科技创始人兼董事长贾佳亚受邀参加第六届中国国际进口博览会暨虹桥国际经济论坛开幕式。虹…

物联网水表电子阀工作原理是怎样的?

随着科技的不断发展&#xff0c;物联网技术逐渐深入到我们的生活之中。作为智能家居的重要组成部分&#xff0c;物联网水表电子阀凭借其智能化、节能环保等优势&#xff0c;受到了越来越多用户的青睐。接下来&#xff0c;合众小编将来为大家介绍下物联网水表电子阀工作原理。 一…

2023云栖大会,Salesforce终敲开中国CRM市场

2015年被视为中国CRM SaaS元年&#xff0c;众多CRM SaaS创业公司和厂商在Salesforce的榜样作用下涌入了CRM SaaS赛道。在全球市场&#xff0c;Salesforce是CRM SaaS领域的领导厂商&#xff0c;连续多年占据了全球CRM SaaS第一大厂商地位。然而&#xff0c;Salesforce作为业务类…

leetcode刷题日记:100.Same Tree(相同的树)和101.Symmetric Tree(对称二叉树)

100.Same Tree(相同的树) 题目给了我们两棵树要我们判断这两颗树是否相同&#xff0c;我首先想到的就是前序序列与中序序列可以唯一确定一棵树&#xff0c;如果我能分别确定这两棵树的前序序列与中序序列&#xff0c;然后再分别比较它们的前序序列与中序序列就能得到这两棵树是…

3D可视化字母出现频率_vtkLinearExtrusionFilter

开发环境&#xff1a; Windows 11 家庭中文版Microsoft Visual Studio Community 2019VTK-9.3.0.rc0vtk-example参考代码目的&#xff1a;学习与总结 demo解决问题&#xff1a;统计输入文本中字母出现的频率&#xff0c;不区分大小写&#xff0c;使用3D可是化方式进行显示&…

Figma转Sketch文件教程,超简单!

相信大家做设计的都多多少少听过一点Figma和Sktech&#xff0c;这2个设计软件是目前市场上很受欢迎的专业UI设计软件&#xff0c;在全球各地都有很多粉丝用户。但是相对来说&#xff0c;Figma与Sketch只支持iOS系统有所不同&#xff0c;Figma是一个在线设计软件&#xff0c;不限…

【网络协议】聊聊HTTPDNS如何工作的

传统 DNS 存在哪些问题&#xff1f; 域名缓存问题 我们知道CND会进行域名解析&#xff0c;但是由于本地会进行缓存对应的域名-ip地址&#xff0c;所以可能出现过期数据的情况。 域名转发问题 出口 NAT 问题 域名更新问题 解析延迟问题 因为在解析DNS的时候&#xff0c;需要进行…

【单片机基础小知识-如何通过指针来读写寄存器】

寄存器的本质就是内存&#xff0c;RAM&#xff0c;而指针是可以对内存进行操作的&#xff0c;因此可以通过指针来读写寄存器。 如何读取以下一片地址&#xff1a; 步骤1、首地址 结构体&#xff0c;它所占用的内存空间大小与它内部成员有关。 构造一个28字节的类型 type…

数据结构-单链表-力扣题

移除链表元素 题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;和前面学的单链表的中间删除数据一样&#xff0c;使要被删除节点的前一个节点指向下要被删除节点的下一个节点&#xff0c;然后把要被删除的节点free掉。 具体实现过程&#xff1a;先…