文档章节

Java8新特性----数组,流

P
 Pxc_春春彭
发布于 2017/08/31 16:31
字数 338
阅读 7
收藏 0

数组声明

  List<Integer>  list =Arrays.asList(1,4,7,9,3,1);

遍历数组

Arrays.asList( "a", "e", "d" ).forEach(e -> System.out.println( e ) );
      

需要更复杂的语句块,则可以使用花括号将该语句块括起来

 Arrays.asList( "a", "b", "d" ).forEach( e -> {
            System.out.print( e );
            System.out.print( e );
        } );

排序

 Collections.sort(list, (s1, s2) -> s1.compareTo(s2));

 

Stream

过滤filter

  List<String> strings = Arrays.asList("abc", "", "bc", "efg", "abcd", "", "jkl");
 List<String> filtered = strings.stream().filter(string -> !string.isEmpty()).collect(Collectors.toList());

forEach

 'forEach' 来迭代流中的每个数据

map

map 方法用于映射每个元素到对应的结果

List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
// 获取对应的平方数
List<Integer> squaresList = numbers.stream().map( i -> i*i).distinct().collect(Collectors.toList());

limit

limit 方法用于获取指定数量的流

Random random = new Random();
random.ints().limit(10).forEach(System.out::println);

sorted

sorted 方法用于对流进行排序

Random random = new Random();
random.ints().limit(10).sorted().forEach(System.out::println);

Collectors

Collectors 类实现了很多归约操作,例如将流转换成集合和聚合元素。Collectors 可用于返回列表或字符串

List<String>strings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");
List<String> filtered = strings.stream().filter(string -> !string.isEmpty()).collect(Collectors.toList());
 
System.out.println("筛选列表: " + filtered);
String mergedString = strings.stream().filter(string -> !string.isEmpty()).collect(Collectors.joining(", "));
System.out.println("合并字符串: " + mergedString);

 

IntSummaryStatistics(求最大、最小、总量、计数)

List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
 
IntSummaryStatistics stats = integers.stream().mapToInt((x) -> x).summaryStatistics();
 
System.out.println("列表中最大的数 : " + stats.getMax());
System.out.println("列表中最小的数 : " + stats.getMin());
System.out.println("所有数之和 : " + stats.getSum());
System.out.println("平均数 : " + stats.getAverage());

 

© 著作权归作者所有

P
粉丝 3
博文 54
码字总数 57364
作品 0
程序员
私信 提问
Java8 新特性之流式数据处理

一. 流式处理简介 在我接触到java8流式处理的时候,我的第一感觉是流式处理让集合操作变得简洁了许多,通常我们需要多行代码才能完成的操作,借助于流式处理可以在一行中实现。比如我们希望对...

落叶清风
2018/10/10
0
0
Java8 - 使用Stream API

Java8 - 使用Stream API Stream 是什么? Stream represents a sequence of objects from a source, which supports aggregate operations(多种操作). Following are the characteristics......

秋风醉了
2018/09/12
0
0
Java8新特性系列(引用)

上期我们分析了Java8中的Lambda表达式,本期我们将分析Java8中的引用。 一、方法引用 定义 若Lambda体中的功能,已经有方法提供实现,可以使用方法引用,可以将方法引用理解为Lambda 表达式的...

码上论剑
2018/02/03
0
0
java8之Lambda知识回顾

前提 18年第一篇文章,祝各位新年快乐哈~ 介绍Lambda之前,可以看下我们定义View点击事件的一般做法 这种回调模式在日常开发中很常见,但是随之也暴露了一些不良的弊端 1、非抽象化,整个代码...

DevSiven
2018/01/05
0
0
java8新特性介绍

一:接口的默认方法 Java8允许开发者通过使用关键字default向接口中加入非抽象方法。这一特性被称为扩展方法。

yjpfj1203
2016/12/15
17
0

没有更多内容

加载失败,请刷新页面

加载更多

基础工具类

package com.atguigu.util;import java.sql.Connection;import java.sql.SQLException;import java.util.Properties;import javax.sql.DataSource;import com.alibaba.druid......

architect刘源源
今天
43
0
P30 Pro劲敌!DxO官宣新机:排行榜又要变

5月26日晚间,DxOMark官方推特预告,将在5月27日公布一款新机型的DxOMark评分,猜猜是哪款? 网友猜想的机型有:红米K20、谷歌Pixel 3a、索尼Xperia 1、诺基亚9 PureView等。 DxOMark即将公布...

linux-tao
昨天
15
0
Ubuntu18.04.2窗口过小不能自适应(二次转载)

解决Ubuntu在虚拟机窗口不能自适应 2018年09月06日 16:20:08 起不了名儿 阅读数 855 此博文转载:https://blog.csdn.net/nuddlle/article/details/77994080(原地址) 试了很多办法这个好用 ...

tahiti_aa
昨天
2
0
死磕 java同步系列之CountDownLatch源码解析

问题 (1)CountDownLatch是什么? (2)CountDownLatch具有哪些特性? (3)CountDownLatch通常运用在什么场景中? (4)CountDownLatch的初始次数是否可以调整? 简介 CountDownLatch,可以...

彤哥读源码
昨天
6
0
Nginx提供下载apk服务

有时候我们可能需要提供文件或者其他apk下载链接,通过 nginx 配置可以很简单地实现。 server {    listen 80;    server_name download.xxx.com;    root app;    locati...

Jack088
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部