简单数据类型int,跟Integer在lambda中的使用还不一样,有区别

code:

package com.qhong.lambda.testDemo;

import java.util.Arrays;
import java.util.Comparator;
import java.util.List; /**
* Created by qhong on 2018/5/23 9:30
**/
public class baseDemo { public static void main(String[] args) {
//int
int[] arr= {,,,,,,,,};
List<Integer> list= Arrays.asList(,,,,,,,,);
System.out.println(Arrays.toString(arr));
System.out.println(Arrays.stream(arr).max().getAsInt());
System.out.println(list.stream().mapToInt(x->Integer.parseInt(x.toString())).max().getAsInt());
System.out.println(list.stream().mapToInt(x->Integer.valueOf(x.toString()).intValue()).min().getAsInt());
System.out.println(list.stream().max(Comparator.comparing(x->x)).get());
System.out.println(list.stream().max(Comparator.comparing(Integer::intValue)).get());
System.out.println("==============Integer=====================");
//Integer
Integer[] arr2= {,,,,,,,,};
System.out.println(Arrays.stream(arr2).mapToInt(x->Integer.parseInt(x.toString())).max().getAsInt());
}
}

boxed:

public class boxedTest {

    public static void main(String[] args) {
List<String> strings = Stream.of("how", "to", "do", "in", "java")
.collect(Collectors.toList());
System.out.println(strings);
List<Integer> ints= IntStream.of(,,,,).boxed()
.collect(Collectors.toList());
System.out.println(ints);
testPersonIds();
} private static void testPersonIds(){
List<Integer> list= getPersonList().stream()
.map(x->x.getIds().split(","))
.flatMap(x->Arrays.stream(x))
.mapToInt(x->Integer.parseInt(x))
.boxed()
.distinct()
.collect(Collectors.toList());
System.out.println(JSON.toJSONString(list));
} private static List<Person> getPersonList(){
return Arrays.asList(new Person[]{
new Person("hongda","1,2,3,4,5"),
new Person("hongdada","3,4,6,7,8"),
new Person("hongda3","8,9,10")
});
} @Data
@NoArgsConstructor
@AllArgsConstructor
static class Person{
private String name; private String ids;
}
}

mapToInt以后会转换成IntStream

使用boxed,会转换成Stream<Integer>

跟下面的方法进行对比:

    private static void testPersonIds(){
Stream<Person> personStream=getPersonList().stream();
Stream<String[]> arrayStream= personStream.map(x->x.getIds().split(","));
Stream<String> stringStream=arrayStream.flatMap(x->Arrays.stream(x));
IntStream intStream=stringStream.mapToInt(x->Integer.parseInt(x));
Stream<Integer> integerStream=intStream.boxed();
Stream<Integer> integerStream1=integerStream.distinct();
List<Integer> list=integerStream1.collect(Collectors.toList());
System.out.println(JSON.toJSONString(list));
}

结果是一样的,这样可以很明显的看出类型的变化。

当然也可以把mapToInt,boxed这两个操作合并成一个map,这里举例使用

Stream<Integer> integerStream=stringStream.map(x->Integer.parseInt(x));

参考:

https://howtodoinjava.com/java-8/java8-boxed-intstream/

https://www.cnblogs.com/andywithu/p/7404101.html

https://www.cnblogs.com/shenlanzhizun/p/6027042.html

https://blog.csdn.net/u014646662/article/details/52261511

Java lambda例子的更多相关文章

  1. Java Lambda表达式初探

    Java Lambda表达式初探 前言 本文受启发于Trisha Gee在JavaOne 2016的主题演讲Refactoring to Java 8. Java 8已经发行两年多,但很多人仍然在使用 ...

  2. Java Lambda简明教程(一)

    Lambda表达式背景 许多热门的编程语言如今都有一个叫做lambda或者闭包的语言特性,包括比较经典的函数式编程语言Lisp,Scheme,也有稍微年轻的语言比如JavaScript,Python, ...

  3. Java Lambda表达式入门[转]

    原文链接: Start Using Java Lambda Expressions http://blog.csdn.net/renfufei/article/details/24600507 下载示 ...

  4. 通过这些示例快速学习Java lambda语法

    对于那些不熟悉函数式编程的人来说,基本的Java lambda语法起初可能有点令人生畏.但是,一旦将lambda表达式分解为它们的组成部分,语法很快就会变得有意义并变得非常自然. Java中lambd ...

  5. Java Lambda表达

    Java 8 lambda表达式示例 我个人对Java 8发布非常激动,尤其是lambda表达式和流API.越来越多的了解它们,我能写出更干净的代码.虽然一开始并不是这样.第一次看到用lambda表达 ...

  6. Java Lambda表达式教程与示例

    Lambda表达式是Java 8中引入的一个新特性.一个lambda表达式是一个匿名函数,而且这个函数没有名称且不属于任何类.lambda表达式的概念最初是在LISP编程语言中引入的. Java La ...

  7. Java Lambda表达式forEach无法跳出循环的解决思路

    Java Lambda表达式forEach无法跳出循环的解决思路 如果你使用过forEach方法来遍历集合,你会发现在lambda表达式中的return并不会终止循环,这是由于lambda的底层实现导 ...

  8. 你真的了解java的lambda吗?- java lambda用法与源码分析

    你真的了解java的lambda吗?- java lambda用法与源码分析 转载请注明来源:cmlanche.com 用法 示例:最普遍的一个例子,执行一个线程 new Thread(() -> ...

  9. Java Lambda表达式入门

    Java Lambda表达式入门 http://blog.csdn.net/renfufei/article/details/24600507 Java 8十个lambda表达式案例 http://w ...

随机推荐

  1. 04-树6 Complete Binary Search Tree(30 分)

    title: 04-树6 Complete Binary Search Tree(30 分) date: 2017-11-12 14:20:46 tags: - 完全二叉树 - 二叉搜索树 categ ...

  2. <7>Lua类的表的实例创建

    根据上一节知识所述Lua中没有像C.C++.JAVA中的类概念,面向对象等 ,但我们可以模拟出来 如下 代码如下: --创建类的表 local Person = {} function Person: ...

  3. 《大话设计模式》c++实现 装饰者模式

    一.UML图   介绍 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构.这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装. 这种模式创 ...

  4. hdu4870 高斯消元

    题意 一个人打比赛 ,rating 有p的概率 为加50分 有1-p的概率为 x-100分 最大值为 1000 最小值为0 有两个号 每次拿较小的号来提交 , 计算最后到达 1000分得期望场数是多少 ...

  5. RobotFrameWork(十三)RobotFramework与loadrunner性能测试结合(基于Remote库)

    一般我们进行完功能测试,都需要进行下性能测试,那么这章我来介绍下,RobotFramework与loadrunner性能测试的融合,即运行完自动化功能测试,借助RobotFramework的Remot ...

  6. jQuery属性--html([val|fn])、text([val|fn])和val([val|fn|arr])

    html([val|fn]) 概述 取得第一个匹配元素的html内容,这个函数不能用于XML文档.但可以用于XHTML文档. 在一个 HTML 文档中, 我们可以使用 .html() 方法来获取任意一 ...

  7. 【Hive学习之一】Hive简介

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 hadoop-3.1.1 apache-hive-3.1.1 ...

  8. OS Tools-GO富集分析工具的使用与解读详细教程

    我们的云平台上的GO富集分析工具,需要输入的文件表格和参数很简单,但很多同学都不明白其中的原理与结果解读,这个帖子就跟大家详细解释~ 一.GO富集介绍:       Gene Ontology(简称G ...

  9. CentOS下Yum的$releasever和$basearch的取值

    CentOS下Yum源配置文件中如CentOS-Base.repo的$releasever和$basearch的取值 $releasever的值,这个表示当前系统的发行版本,可以通过如下命令查看: r ...

  10. python pandas简单使用处理csv文件

    这里jira.csv是个大文件 1) >>> import pandas >>> jir=pandas.read_csv(r'C:\Temp\jira.csv') ...