专栏首页好派笔记使用流stream来将下列3种数组快速转为List,分别是int[]、long[]、double[]
原创

使用流stream来将下列3种数组快速转为List,分别是int[]、long[]、double[]

使用流stream来将下列3种数组快速转为List,分别是int[]、long[]、double[],其他数据类型比如short[]、byte[]、char[],在JDK1.8中暂不支持。 由于这只是一种常用方法的封装,不再纳入一种崭新的数组转List方式,暂时算是java流送给我们的常用工具方法吧。 转换代码示例如下: List<Integer> intList= Arrays.stream(new int[] { 1, 2, 3, }).boxed().collect(Collectors.toList()); List<Long> longList= Arrays.stream(new long[] { 1, 2, 3 }).boxed().collect(Collectors.toList()); List<Double> doubleList= Arrays.stream(new double[] { 1, 2, 3 }).boxed().collect(Collectors.toList()); 如果是String数组,可以使用Stream流这样转换: String[] arrays = {"tom", "jack", "kate"}; List<String> stringList= Stream.of(arrays).collect(Collectors.toList()); 总结 我们来看List在Java源码中的定义(别害怕看不懂源码,看我分析,很易懂的): public interface List<E> extends Collection<E> {省略…} 再来看Arrays.asList()的在Java源码定义: public static <T> List<T> asList(T... a) { return new ArrayList<>(a); } 从上述源码中可以看出,List声明时,需要传递一个泛型作为形参,`asList()`参数类型也是泛型中的通配类型。 Java中所有的泛型必须是引用类型。 什么是引用类型? Integer是引用类型,那int是什么类型?int是基本数据类型,不是引用类型。这就是为什么java中没有List,而只有List。 举一反三: 其他8种基本数据类型 byte、short、int、long、float、double、char也都不是引用类型, 所以8种基本数据类型都不能作为List的形参。但String、数组、class、interface是引用类型, 都可以作为List的形参,所以存在List接口类型的集合、List数组类型的集合、List类的集合。 但不存在list、list 等基本类型的集合。 现在你应该明白,为什么int[]不能直接转换为List,而Integer[]就可以转换为List了吧。 因为List中的泛型必须是引用类型,int是基本数据类型,不是引用类型, 但int的包装类型Integer是class类型,属于引用类型,所以Integer可以作为List形参, List在java中是可以存在的,但不存在List类型。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java 8中集合优雅快速的处理方式

    相信现在大多数的伙伴们,都在使用Java 8了,而 Java 8相比以前的版本,是作出了革命性的改变。Java8的特性大致可总结为,开发速度更快,代码更少,增加...

    攻城狮的那点事
  • 简洁又快速地处理集合——Java8 Stream(下)

    而 parallelStream() 是并行流方法,能够让数据集执行并行操作,后面会更详细地讲解

    lyb-geek
  • java8 stream的这些开发技巧,你值得好好收藏

    Stream、IntStream、LongStream、DoubleStream的父接口都是BaseStream。BaseStream的四个子接口方法都差不多,...

    苏三说技术
  • java8新特性(二):StreamAPI

    Java8中有两大最为重要的改变。第一个是Lambda 表达式;另外一个则是Stream API(java.util.stream.*)。 Stream 是J...

    周三不加班
  • WebFlux 前置知识(三)

    松哥原创的 Spring Boot 视频教程已经杀青,感兴趣的小伙伴戳这里-->Spring Boot+Vue+微人事视频教程

    江南一点雨
  • java8 Lambda Stream collect Collectors 常用实例

    字典查询和数据转换 toMap时,如果value为null,会报空指针异常 解决办法一:

    Erwin
  • 干货 | Java8 新特性指导手册

    小伙伴们,Java 版本都到 12 啦,我发现还有很多小伙伴对 8 的新特性不是很了解。

    Java技术江湖
  • Java8-Stream API 详解

    Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 ...

    用户7886150
  • Lambda表达式最佳实践(2)Stream与ParallelStream

    range(int startInclusive, int endExclusive) rangeClosed(int startInclusive, in...

    干货满满张哈希
  • Java8的Stream API使用

    这次想介绍一下Java Stream的API使用,最近在做一个新的项目,然后终于可以从老项目的祖传代码坑里跳出来了。项目用公司自己的框架搭建完成后,我就想着把J...

    纪莫
  • c++ 常用函数

    #include <strstrea.h>   //该类不再支持,改用<sstream>中的stringstream

    用户7886150
  • c++ 常用函数

    #include <strstrea.h>   //该类不再支持,改用<sstream>中的stringstream

    用户7886150
  • c++ 常用函数

    #include <strstrea.h>   //该类不再支持,改用<sstream>中的stringstream

    用户7886150
  • c++ 常用函数

    #include <strstrea.h>   //该类不再支持,改用<sstream>中的stringstream

    用户7886150
  • c++ 常用函数

    #include <strstrea.h>   //该类不再支持,改用<sstream>中的stringstream

    用户7886150
  • c++ 常用函数

    #include <strstrea.h>   //该类不再支持,改用<sstream>中的stringstream

    用户7886150
  • Java-Collectors常用的20个方法

    用于将一个集合划分为2个集合并将其添加到映射中,1个满足给定条件,另一个不满足,例如从集合中分离奇数。因此它将在map中生成2条数据,1个以true为key,奇...

    java干货
  • ClickHouse集群搭建(一)

    用于将一个集合划分为2个集合并将其添加到映射中,1个满足给定条件,另一个不满足,例如从集合中分离奇数。因此它将在map中生成2条数据,1个以true为key,奇...

    java干货
  • 强大的 Stream 函数式编程

    Java8(又称为 Jdk1.8)是 Java 语言开发的一个主要版本。Oracle 公司于 2014 年 3 月 18 日发布 Java8,它支持函数式编程,...

    java乐园

作者介绍

好派笔记

秦皇岛经济技术开发区易云软件开发服务部技术总监

秦皇岛经济技术开发区易云软件开发服务部 · 技术总监 (已认证)

专栏

精选专题

活动推荐

扫码关注云+社区

领取腾讯云代金券