
Java8学习篇
Java8新特性学习篇
Coder编程
欢迎关注Coder编程公众号,主要分享数据结构与算法、Java相关知识体系、框架知识及原理、Spring全家桶、微服务项目实战、DevOps实践之路、每日一篇互联网大厂面试或笔试题以及PMP项目管理知识等。更多精彩内容正在路上~
展开
-
Java8:自制多糖 switch
1.背景JDK 12 和 JDK 13 已经发布了,伴随着许多对 Java 语法的小改进,比如我们非常熟悉的 switch:1.1 JDK12 之前switch (type) { case "all": System.out.println("列出所有帖子"); break; case "auditing": System.o...转载 2019-11-08 14:24:54 · 499 阅读 · 0 评论 -
Java8:使用 Optional 处理 null
前言写过 Java 程序的同学,一般都遇到过 NullPointerException ???? —— 为了不抛出这个异常,我们便会写如下的代码:User user = getUserById(id);if (user != null) { String username = user.getUsername(); System.out.println("Username is: ...转载 2019-11-08 14:22:15 · 456 阅读 · 0 评论 -
Java8:使用并行流
对于斐波那契数的计算,我们都知道最容易理解的就是递归的方法:public long recursiveFibonacci(int n) { if (n < 2) { return 1; } return recursiveFibonacci(n - 1) + recursiveFibonacci(n - 2);}当然这个递归也可以转化...转载 2019-11-07 11:11:47 · 949 阅读 · 0 评论 -
Java8:当 forEach 需要索引
在 上一篇文章 中,我们讨论了如何使用 Java8 中 Map 添加的新方法 computeIfAbsent 来统计集合中每个元素出现的所有位置,代码如下:public static Map<String, List<Integer>> getElementPositions(List<String> list) { Map<String, Li...转载 2019-11-01 13:55:45 · 4584 阅读 · 1 评论 -
Java8:对字符串连接的改进
我们提出一个需求:有一个 List<String>,将其格式化为 元素1, 元素2, 元素3, … 元素N 的字符串形式。毋庸置疑,Java8 之前我们的第一反应是使用 StringBuilder:public static String formatList(List<String> list, String delimiter) { StringBuilde...转载 2019-10-29 15:20:24 · 387 阅读 · 0 评论 -
Java8:Java8 中 Map 接口的新方法
我们提一个需求:给定一个 List<String>,统计每个元素出现的所有位置。比如,给定 list:["a", "b", "b", "c", "c", "c", "d", "d", "d", "f", "f", "g"],那么应该返回:a : [0]b : [1, 2]c : [3, 4, 5]d : [6, 7, 8]f : [9, 10]g : [11]很明显,我...转载 2019-10-25 09:30:13 · 441 阅读 · 0 评论 -
Java8:当 Lambda 遇上受检异常
前言我今天高高兴兴,想写个简单的统计一个项目下有多少行代码的小程序,于是咔咔的写下:long count = Files.walk(Paths.get("D:/Test")) // 获得项目目录下的所有目录及文件 .filter(file -> !Files.isDirectory(file)) ...转载 2019-10-18 14:24:47 · 661 阅读 · 0 评论 -
OCP开源项目:Spring Cloud Gateway模块中动态路由的实现
Spring Cloud Gateway的动态路由实现1.前言在前一章,我们已经做了简单spring cloud gateway 介绍 和 限流,接下来,spring cloud gateway最重要的,也是最为关键的 动态路由,首先,API网关负责服务请求路由、组合及协议转换,客户端的所有请求都首先经过API网关,然后由它将匹配的请求路由到合适的微服务,是系统流量的入口,在实际生产环境中为了...原创 2019-09-08 13:25:48 · 1287 阅读 · 2 评论 -
Java8学习篇 | (一)函数式编程简介
思维方式的转变以从一个城市集合中寻找是否存在Chicago为例:习惯的方式boolean found = false;for(String city : cities) { if(city.equals("Chicago")) { found = true; break; }}System.out.println("Found chicago?...转载 2018-04-28 17:07:37 · 310 阅读 · 0 评论 -
Java8学习篇 | (1)行为参数化
用一个例子说明行为参数化带来的变化 - 从苹果仓库中筛选苹果版本1从一个苹果集合中选出绿的苹果public static List filterGreenApples(List inventory) { List result = new ArrayList(); for (Apple apple : inventory) {转载 2018-01-23 17:31:24 · 417 阅读 · 0 评论