java 8 新特性
阳光下的米雪
在校研究生
展开
-
Stream两个Map的value值进行相加/相减,并将合并数据集赋值给新Map
最近做项目遇到,需要把两个Map中的value值进行相加或相减,循环遍历方法太麻烦,有时候数据量大的时候,还会超时。原创 2022-08-25 19:27:26 · 4417 阅读 · 0 评论 -
Java8新特性之Stream--Stream方法
Stream方法Stream主要有以下几种方法: 遍历/匹配(foreach/find/match) 筛选(filter) 聚合(max/min/count) 映射(map/flatMap) 归约(reduce)遍历/匹配(foreach/find/match)Stream也是支持类似集合的遍历和匹配元素的,只是Stream中的元素是以Optional类型存在的。Stream的遍历、匹配非常简单。 List<Integer> list = Ar原创 2021-03-01 19:22:04 · 366 阅读 · 2 评论 -
Java8新特性之Stream--collect方法
collect方法收集(collect)collect,收集,可以说是内容最繁多、功能最丰富的部分了。从字面上去理解,就是把一个流收集起来,最终可以是收集成一个值也可以收集成一个新的集合。collect主要依赖java.util.stream.Collectors类内置的静态方法。归集(toList/toSet/toMap)因为流不存储数据,那么在流中的数据完成处理后,需要将流中的数据重新归集到新的集合里。 toList、toSet和toMap比较常用,另外还有toCollection、toCon原创 2021-03-01 19:54:32 · 7293 阅读 · 0 评论 -
Java8新特性之Stream
Java8新特性之StreamStream将要处理的元素集合看作一种流,在流的过程中,借助Stream API对流中的元素进行操作,比如:筛选、排序、聚合等。Stream可以由数组或集合创建,对流的操作分为两种:1.中间操作,每次返回一个新的流,可以有多个。2.终端操作,每个流只能进行一次终端操作,终端操作结束后流无法再次使用。终端操作会产生一个新的集合或值。Stream特性: 1.Stream不存储数据,而是按照特定的规则对数据进行计算,一般会输出结果 2.Stream不会原创 2021-02-25 09:35:30 · 358 阅读 · 0 评论 -
Java8新特性之Stream--Stream的创建
Stream的创建通过java.util.Colleaction.stream()方法用集合创建流 List<String> list = Arrays.asList("a", "b", "c", "d", "e"); //创建一个顺序流 Stream<String> stream = list.stream(); System.out.println("用集合创建顺序流:" + stream); //创建一个并行原创 2021-03-01 19:07:57 · 129 阅读 · 0 评论 -
java 两种方式获取起始日期和结束日期之间的日期列表
java 两种方式获取起始日期和结束日期之间的日期列表第一种----Listpublic static List<Date> getDaysBetweenDates(Date startDate, Date endDate) { List<Date> dates = new ArrayList<Date>(); Calendar calendar = new GregorianCalendar(); calendar.s原创 2021-07-13 19:53:00 · 2140 阅读 · 0 评论 -
近七日趋势展示(数据小于7天,补全日期与相应数据)
近七日趋势展示(数据小于7天,补全日期与相应数据)最近做项目遇到一个问题,就是获取近七日趋势数据的展示,从数据库中查询出满足条件的数据有几条就返回几条,如果条数<7,就会缺失相应日期与该日期对应的数据,在前端界面上显示就会不太美观。接下来就针对上述问题进行处理,如果数据库返回的数据的条数小于7,则补全缺少的日期,该日期对应的数据为0。获取近七日日期的工具类 public static Set<String> getBeforeDayTimeOnlyDayList() {原创 2021-07-12 11:32:52 · 409 阅读 · 0 评论 -
Optional类
Optional类Optional类(java.util.Optional)是一个容器类,代表一个值存在或不存在,原来用null表示一个值不存在,现在Optional可以更好的表达这个概念。并且可以避免空指针异常。Optional容器类的常用方法Optional.of(T t):创建一个Optional实例Optional.empty():创建一个空的Optional实例Optional.ofNullable(T t):若t不为null,创建Optional实列,否则创建空实例isPresent原创 2021-04-16 20:33:48 · 5878 阅读 · 2 评论 -
Stream中间操作小练习
Stream之间操作练习给定一个数字列表,如何返回一个由每个数的平方构成的列表呢 /** * 给定一个数字列表,如何返回一个由每个数的平方构成的列表呢 * eg: 1 2 3 4 5 * 返回 1 4 9 16 25 */ @Test public void test1() { List<Integer> nums = Arrays.asList(1, 2, 3, 4, 5, 6); nums.st原创 2021-04-16 20:17:40 · 321 阅读 · 0 评论 -
Stream的中间操作(下)
Stream的中间操作查找与匹配allMatch----检查是否匹配所有元素anyMatch----检查是否至少匹配一个元素noneMatch---检查是否没有匹配的元素findFirst----返回第一个元素findAny----返回当前流中的任意元素count-----返回流中元素上的总个数max----返回流中最大值min----返回流中最小值 List<Employee> employees = Arrays.asList( new Emp原创 2021-04-16 20:04:11 · 134 阅读 · 0 评论 -
Stream的中间操作(上)
Stream的中间操作筛选与切片filter-----接收lambda,从流中排除某些元素limit-----截断流,使其元素不超过给定数量skip(n)----跳过元素,返回一个扔掉了前n个元素的流。若流中元素不足n个,则返回一个空流。与limit(n)互补distinct---筛选,通过流所生成元素的hashCode()与equals()去除重复元素List<Employee> employees = Arrays.asList( new Employ原创 2021-04-16 19:56:45 · 78 阅读 · 0 评论 -
Stream API
Stream API什么是Stream流(Stream)是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。集合讲的数据,流讲的是计算!注意:1. Stream自己不会存储元素2. Stream不会改变源对象。相反,他们会返回一个持有结果的新Stream3. Stream操作时延迟执行的。这意味着他们会等到需要结果的时候才执行Stream操作的三个步骤1. 创建Stream一个数据源(如:集合、数组),获取一个流2. 中间操作一个中间操作链,对数据源的数据进行处理3.原创 2021-04-16 19:47:47 · 62 阅读 · 0 评论 -
Lambda表达式以及语法格式
LambdaLambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。Lambda表达式基础语法Java8引入来了一个新的操作符"->" 该操作符称为箭头操作符或Lambda操作符箭头操作符将Lambda表达式拆分成两部分:左侧:Lambda表达式的参数列表右侧:Lambda表达式中所需执行的功能,即Lambda体语法格式主要有以下六种语法格原创 2021-04-08 20:22:22 · 345 阅读 · 4 评论 -
方法引用、构造器引用与数组引用
方法引用与构造器引用方法引用若Lambda体中的内容有方法已经实现了,我们可以使用“方法引用”(可以理解为方法引用是lambda表达式的另外一种表现形式)主要有三种语法格式: * 对象::实例方法名 * 类::静态方法名 * 类::实例方法名 * 注意: * 1.Lambda体中调用方法的参数列表与返回值类型,要与函数式接口抽象方法的函数列表和返回值类型保持一致! * 2.若Lambda参数列表中第一个参数是实例方法是调用者,第二个参数是实例方法的参数时,可以使用类名::方法名原创 2021-04-16 19:33:57 · 98 阅读 · 0 评论 -
函数式接口
函数式接口接口中只有一个抽象方法的接口,称为函数式接口。可以使用一个注解@FunctionalInterface修饰。可以检查是否是函数式接口。Java 8 内置的四大核心函数式接口Consumer :消费型接口void accept(T t);@Testpublic void test1(){ happy(100.00,x-> System.out.println("kkkkkk"+x)); } public void happy(double mone原创 2021-04-16 19:27:16 · 91 阅读 · 0 评论