10个一行代码就能搞定的编程技巧

云栖号资讯:【点击查看更多行业资讯】
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!

本文列举了十个使用一行代码即可独立完成(不依赖其他代码)的业务逻辑,主要依赖的是Java8中的Lambda和Stream等新特性以及try-with-resources、JAXB等。

1、对列表/数组中的每个元素都乘以2

 // Range是半开区间int [] ia = range(1, 10).map(i -> i * 2).toArray();List<Integer> result = range(1, 10).map(i -> i * 2).boxed().collect(toList());

2、计算集合/数组中的数字之和

 range(1, 1000).sum();range(1, 1000).reduce(0, Integer::sum);Stream.iterate(0, i -> i + 1).limit(1000).reduce(0, Integer::sum);IntStream.iterate(0, i -> i + 1).limit(1000).reduce(0, Integer::sum);

3、验证字符串是否包含集合中的某一字符串

final List<String> keywords = Arrays.asList("brown", "fox", "dog", "pangram");
final String tweet = "The quick brown fox jumps over a lazy dog. #pangram http://www.rinkworks.com/words/pangrams.shtml";keywords.stream().anyMatch(tweet::contains);
keywords.stream().reduce(false, (b, keyword) -> b || tweet.contains(keyword), (l, r) -> l || r);

4、读取文件内容

原作者认为try with resources也是一种单行代码编程。

try (BufferedReader reader = new BufferedReader(new FileReader("data.txt"))) {String fileText = reader.lines().reduce("", String::concat);}try (BufferedReader reader = new BufferedReader(new FileReader("data.txt"))) {List<String> fileLines = reader.lines().collect(toCollection(LinkedList<String>::new));}try (Stream<String> lines = Files.lines(new File("data.txt").toPath(), Charset.defaultCharset())) {List<String> fileLines = lines.collect(toCollection(LinkedList<String>::new));}

5、输出歌曲《Happy Birthday to You!》 - 根据集合中不同的元素输出不同的字符串

 range(1, 5).boxed().map(i -> { out.print("Happy Birthday "); if (i == 3) return "dear NAME"; else return "to You"; }).for

6、过滤并分组集合中的数字

 Map<String, List<Integer>> result = Stream.of(49, 58, 76, 82, 88, 90).collect(groupingBy(forPredicate(i -> i > 

7、获取并解析xml协议的Web Service

FeedType feed = JAXB.unmarshal(new URL("http://search.twitter.com/search.atom?&q=java8"), FeedType.class);
JAXB.marshal(feed, System.out);

8、获得集合中最小/最大的数字

 int min = Stream.of(14, 35, -7, 46, 98).reduce(Integer::min).get();min = Stream.of(14, 35, -7, 46, 98).min(Integer::compare).get();min = Stream.of(14, 35, -7, 46, 98).mapToInt(Integer::new).min();int max = Stream.of(14, 35, -7, 46, 98).reduce(Integer::max).get();max = Stream.of(14, 35, -7, 46, 98).max(Integer::compare).get();max = Stream.of(14, 35, -7, 46, 98).mapToInt(Integer::new).max();

9、并行处理

 long result = dataList.parallelStream().mapToInt(line -> processItem(line)).sum();

10、集合上的各种查询(LINQ in Java)

List<Album> albums = Arrays.asList(unapologetic, tailgates, red);//筛选出至少有一个track评级4分以上的专辑,并按照名称排序后打印出来。
albums.stream().filter(a -> a.tracks.stream().anyMatch(t -> (t.rating >= 4))).sorted(comparing(album -> album.name)).forEach(album -> System.out.println(album.name));//合并所有专辑的track
List<Track> allTracks = albums.stream().flatMap(album -> album.tracks.stream()).collect(toList());//根据track的评分对所有track分组
Map<Integer, List<Track>> tracksByRating = allTracks.stream().collect(groupingBy(Track::getRating));

【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/zhibo

立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

原文链接
本文为云栖社区原创内容,未经允许不得转载。

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

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

相关文章

这就是让程序猿删库跑路的命令,使用须谨慎

删库跑路这种说法其实也是程序员枯燥生活一种自我解压的方式&#xff0c;真要这么玩基本上这个程序员在软件行业也就不用混了&#xff0c;不仅仅是职业素质的问题&#xff0c;还涉及到人品问题了&#xff0c;曾经听过删库的程序员&#xff0c;基本上外包性质的公司比较多&#…

HTTP系列学习(笔记二):HTTPS与HTTP的区别在哪?

图文详解&#xff1a; 对称加密 &#xff1a;加密与解密的算法一样 非对称加密&#xff1a;加密与解密的算法不同 加密算法&#xff1a; 明文 -> encode 加密 -> 密文 -> decode 解密 -> 明文 摘要算法&#xff1a; 加密后得到固定长度的摘要&#xff0c;无法解…

程序员晒元宵节福利,网友:看了我想砸键盘......

再过几天就到元宵节了&#xff0c;又到了互联网大厂晒福利、拉仇恨的时候了。小编在脉脉上看到许多不愿透露姓名的网友的爆料&#xff0c;一起来看看吧。有的网友说收到了汤圆&#xff0c;还有员工说收到了四盒草莓&#xff0c;但是还有网友透露自己喜提加班&#xff0c;更有甚…

深度解读OpenYurt:从边缘自治看YurtHub的扩展能力

作者 | 新胜 阿里云技术专家 导读&#xff1a;OpenYurt 开源两周以来&#xff0c;以非侵入式的架构设计融合云原生和边缘计算两大领域&#xff0c;引起了不少行业内同学的关注。阿里云推出开源项目 OpenYurt&#xff0c;一方面是把阿里云在云原生边缘计算领域的经验回馈给开源…

HTTP系列学习(笔记一):一文带你详解HTTP协议

1、什么是协议 计算机中的协议和现实生活中的协议是一样的&#xff0c;一式多份&#xff0c;彼此都遵从共同的一个规范&#xff0c;这个规范就可以称之为协议。 2、HTTP协议的工作流程 3、HTTP请求信息和响应信息的格式 请求&#xff1a; 响应&#xff1a; 常见状态码&…

阿里高级技术专家总结6年来的成长和收获

7月9日 19:00-21:30 阿里云开发者社区首场“Offer 5000”直播开启&#xff01;15位团队技术大牛在线招人&#xff0c;更有《阿里云技术面试红宝书》助你拿下Offer&#xff01;点击图片或戳我查看详情和投简历 作者 | 箫逸 阿里文娱高级技术专家 导读&#xff1a;转眼 2020 已…

一目了然的 Docker 环境配置指南

来源 | Datawhale作者 | Tianchi头图 | 下载于视觉中国Docker是一个开源的引擎&#xff0c;可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署&#xff0c;包括VMs&#xff08;虚拟机&#xff0…

阿里本地生活EMonitor根因分析大揭秘

背景 阿里集团针对故障处理提出了“1/5/10”的目标-- 1 分钟发现、5 分钟定位、10 分钟恢复&#xff0c;这对我们的定位能力提出了更高的要求。 EMonitor 是一款集成 Tracing 和 Metrics、服务于饿了么所有技术部门的一站式监控系统&#xff0c;其覆盖了 前端监控、接入层监…

uniapp 打包安卓 Android 抖音app 前端篇~01

文章目录一、配置1. 修改后端服务地址2. 基础配置3. App图标配置4. App启动页面配置5. App模块配置二、发行2.1. 云打包2.2. 云打包配置2.3. 下载app三、安装apk3.1. 下载apk3.2. 安装apk3.3. 打开app3.4. 同意协议3.5. 前端页面效果一、配置 1. 修改后端服务地址 2. 基础配置…

this全面解析, 如何定位this指向,一文总结,再也不怕面试官追问啦

一、调用位置 在理解this的绑定过程之前&#xff0c;首先要理解调用位置&#xff1a;调用位置就是函数在代码中被调用的位置&#xff08;而不是申明的位置&#xff09;。只有仔细分析调用位置才能回答这个问题&#xff1a;这个this到底引用的是什么&#xff1f; function foo…

踩着七彩祥云来接你的不一定是意中人,也可能是阿里云

你今天点外卖了吗&#xff1f;你今天剁手了吗&#xff1f; 你每次在饿了么和淘宝上的刷刷刷、点点点 都有阿里云服务器ECS在云端疯狂计算 ——阿里云ECS&#xff0c;支撑了阿里经济体全面上云—— ---- 天猫双11核心系统100%上云 阿里云征服史上最大流量洪峰 饿了么100%迁至阿…

深度思考 Spring Cloud + Alibaba Sentinel 源码原理

随着微服务的流行&#xff0c;服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点&#xff0c;从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。作者 | 向寒 / 孙玄来源 | 架构之美头图 | 下载于视觉中国关于 Sentinel 1、理论篇以下是经过多年分…

WORDPRESS付费会员插件Paid Memberships Pro v2.12.5 – Plugin + All Addons

WORDPRESS付费会员插件Paid Memberships Pro v2.12.5 – Plugin All Addons 简介&#xff1a; Paid Memberships Pro是一款功能强大的会员订阅和内容限制管理插件&#xff0c;适用于WordPress网站。它提供了丰富的特性和工具&#xff0c;帮助网站所有者轻松地创建和管理付费…

云计算与星辰大海的结合

云栖号资讯&#xff1a;【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯&#xff0c;还在等什么&#xff0c;快来&#xff01; 今年在疫情的影响下&#xff0c;各国的经济发展都遇到了一些困难&#xff0c;甚至除中国以外的主要经济体都会进入了负增长的…

uniapp 打包安卓 Android 抖音app 后端篇~02

文章目录1. 中间件配置2. 云短信配置1. 中间件配置 2. 云短信配置

深入理解javascript之原型和原型链

看到一篇关于原型和原型链很好的文章&#xff0c;一看就懂&#xff0c;分享给大家 什么是原型&#xff1f; 上面的Person.prototype就是原型&#xff0c;它是一个对象&#xff0c;我们也称它为原型对象。 . 原型的作用是什么&#xff1f; 原型的作用&#xff0c;就是共享方法…

从开源自治到微服务云化,用这剂良药提升微服务幸福感

前言 微服务发展至今&#xff0c;因其高内聚、低耦合等特性&#xff0c;以及诸多开源方案带来的开放性&#xff0c;已成为提升架构效率的最佳实践之一。当一项技术或一个框架成为事实标准之后&#xff0c;我们会把更多的注意力聚焦在运维效率和应用可用性的持续提升上。相信下…

uniapp 打包安卓 Android 抖音app 前后端调试篇~03

文章目录1. 未登录首页浏览短视频2. 发布视频-云短信登录3. 发布选择视频4. 上传短视频到云存储5. 测试发布视频6. 个人中心查看发布视频7. 首页查看刚发布视频8. 个人中心1. 未登录首页浏览短视频 在未登录的情况下&#xff0c;首页可以看短视频 2. 发布视频-云短信登录 点…

俯瞰云原生,这便是供应层

来源 | K8sMeetup社区作者 | Catherine Paganini&#xff0c;Jason Morgan头图 | 下载于视觉中国在都在说云原生&#xff0c;它的技术图谱你真的了解吗&#xff1f;中&#xff0c;我们对 CNCF 的云原生技术生态做了整体的介绍。从本篇开始&#xff0c;将详细介绍云原生全景图的…

进击的Kubernetes调度系统(一):SchedulingFramework

作者&#xff1a;王庆璨 张凯 前言 Kubernetes已经成为目前事实标准上的容器集群管理平台。它为容器化应用提供了自动化部署、运维、资源调度等全生命周期管理功能。经过3年多的快速发展&#xff0c;Kubernetes在稳定性、扩展性和规模化方面都有了长足进步。 尤其是Kubernete…