【Java】集合List转换为数组【toArray() /stream()流】实现

这篇具有很好参考价值的文章主要介绍了【Java】集合List转换为数组【toArray() /stream()流】实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


在Java中,集合(List 接口的实现类)提供了一个名为 toArray 的方法,用于将集合中的元素转换成数组。该方法有两个主要的重载形式,分别用于不同的情况。

一、集合对象的非静态方法toArray()

1、toArray()重载方法1

<T> T[] toArray(T[] a)

这个方法将集合中的元素复制到一个指定类型的数组中,并返回该数组。如果指定的数组大小足够容纳集合中的所有元素,那么会将元素直接复制到指定数组中。如果指定的数组大小不足以容纳所有元素,会创建一个新的数组,并将元素复制到新数组中。

示例:

List<String> stringList = new ArrayList<>();
stringList.add("apple");
stringList.add("banana");
stringList.add("orange");

String[] stringArray = stringList.toArray(new String[0]);

2、toArray()重载方法2

Object[] toArray()

这个重载方法不接受参数,它将集合中的元素复制到一个新创建的 Object 类型数组中,并返回该数组。

List<Integer> intList = new ArrayList<>();
intList.add(1);
intList.add(2);
intList.add(3);

Object[] intArray = intList.toArray();

需要注意的是,toArray 方法返回的是一个对象数组,而不是原始的基本数据类型数组。如果需要将集合中的基本数据类型元素转换成数组,可以使用 Java 8 中引入的 stream() 方法和 toArray() 方法的结合。

二、使用stream()流

示例:

List<Integer> intList = new ArrayList<>();
intList.add(1);
intList.add(2);
intList.add(3);

int[] primitiveIntArray = intList.stream()
                                .mapToInt(Integer::intValue)
                                .toArray();

stream()流与 toArray结合的方式

好处,使用stream()转换为数组过程中可以过滤数据

1、返回Object数组

toArray()默认返回Object数组

  ArrayList<Integer> list2 = new ArrayList<>();
  Collections.addAll(list2, 1, 2, 3, 4);
  // 3、收集数据放进数组
  System.out.println("3、收集数据放进数组===============");
  Object[] arr1 = list2.stream().toArray();
  

2、指定数组类型

toArray()中可以接收一个接口作为参数
接口中可以创建指定类型和大小的数组

下面是匿名内部类和lambda表达式两种方式的实现

接口中非抽象方法apply的形参value为流中数据的个数

  // 4、指定放进数组数据类型
  System.out.println("4、指定放进数组数据类型===============");
  // Infunction的泛型:具体类型的数组
  // apply中形参:流中数据的个数,要跟数组长度一致
  // apply的返回值:具体类型的数组
  Integer[] arr2 = list2.stream().toArray(new IntFunction<Integer[]>() {
      @Override
      public Integer[] apply(int value) {
          //System.out.println("value"+value);
          return new Integer[value];
      }
  });
  // toArray方法中的参数:只是创建一个指定类型的数组
  // toArray底层: 会此意得到流中的每一个数据,并把数据放到数组中
  // toArray的返回值:是一个装着流里面所有数据的数组
 
  // lambda表达式写法,表达式中value表示数组长度也就是流中数据的个数
  Integer[] arr3 = list2.stream().toArray(value -> new Integer[value]);

总之,toArray 方法是将集合中元素转换成数组的一种便捷方式,有助于在集合和数组之间进行数据转换。文章来源地址https://www.toymoban.com/news/detail-773380.html

到了这里,关于【Java】集合List转换为数组【toArray() /stream()流】实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java基础】Java8 使用 stream().filter()过滤List对象(查找符合条件的对象集合)

    本篇主要说明在Java8及以上版本中,使用stream().filter()来过滤List对象,查找符合条件的集合。 集合对象以学生类(Student)为例,有学生的基本信息,包括:姓名,性别,年龄,身高,生日几项。 我的学生类代码如下: 下面来添加一些测试用的数据,代码如下: 添加过滤条件

    2024年02月12日
    浏览(68)
  • Java List toArray(new String[0]) 的理解&List的toArray()方法详解

    1、ArrayList的toArray ArrayList提供了一个将List转为数组的一个非常方便的方法toArray。toArray有两个重载的方法: (1)list.toArray(); (2)list.toArray(T[] a); 不明真像的同学喜欢用第一个,是这样写: 结果一运行,报错: 原因一看就知道了,不能将Object[] 转化为String[],转化的话只能

    2024年02月07日
    浏览(57)
  • 【Java】Java数组转换为集合

    当将Java数组转换为集合时,可以使用不同的方法来满足不同的需求。以下是几个与数组转换为集合相关的方法: 一、使用 Arrays.asList 方法: 如前所述,Arrays.asList 方法是最常见的将数组转换为集合的方法。它返回一个固定大小的 List 视图,因此不能进行添加或删除操作。示

    2024年02月03日
    浏览(50)
  • 【Java集合与数组】List<T>数组和数组List<T>的区别(124)

    List数组 :存储List的数组,即:数组中的元素是:List; 数组List :存储数组的List,即:List中的数据是类型的数组; 测试案例: 测试输出:

    2024年02月11日
    浏览(44)
  • Java中用Stream流对List对象集合转Map时key值重复的操作

    看完你还不懂,你直接喷·· 定义: 1.List是一个装Dto对象的集合 2.Dto里面有ID属性,name属性等等 3.Dto里面的ID会重复  现在要把List转成以ID为key值的map,明显key不能重复啊,所以应该怎么操作呢? (需要你有java8Stream流的基本概念,map的基本概念)   操作1:重复key,选择保留

    2024年01月18日
    浏览(58)
  • java数组转换为集合

    1.使用Arrays.asList方法,将数组转换成集合 2.使用Collections.addAll()方法,实际上是创建一个集合,我们将数组的值快速赋到集合中 3.将数组转换成stream流,然后通过终端操作.collect(Collectors.toList())将流转换为一个List集合返回,同时也可以转换成set、map等集合 最后在这里想给大家说

    2024年02月16日
    浏览(43)
  • Java集合与数组互相转换

            集合与数组互相转换在日常业务开发中必不可少,有时业务需要的是集合,而程序提供的是数组;或者业务需要的是数组,而程序提供的是集合,这就需要转换了。 以下简单提供几种常用的方法(以Int作为泛型示例),记录一下方便查阅! 推荐方式一 推荐方式一

    2024年02月11日
    浏览(51)
  • Java将集合List转换成String字符串(或String转换成List)

    目录 1、将集合list转换成string 1.1、使用String.join()方法:  1.2、使用StringBuilder:  1.3、使用Java 8的Stream API (推荐): 总结: 2、将string转换成list 2.1、使用String的split()方法: 2.2、 使用Java 8的Stream API的splitAsStream()方法:  总结: 将一个Java集合List转换为String很简单,可以使用

    2024年02月02日
    浏览(72)
  • Java:List相互转换数组

    经常我们会遇到前端传服务端值为数组的时候我们需要对其转换成集合便于一些其它操作,删除,匹配等操作,今天我们就总结下数组集合相互转换的方法 1、Object[] objArray = arrayList.toArray(); 2、String[] strArray = new String[list.size()]; 3、String[] strArray = list.toArray(new String[list.size()])

    2024年01月18日
    浏览(47)
  • Java Stream流 List< T >转换Map方法汇总合集(大概是最全吧)

    本文主要介绍 Java 中利用 Stream 流将 List T 类型数据转换成 Map 类型的几种方法整合汇总,其中包含了toMap()、groupingBy()、partitioningBy()等方法的使用,建议收藏方便查阅,如果有帮助到您,不要吝啬点赞、收藏! tips:本文没有推荐使用三方类库提供的 List 转 Map 工具类方法,因

    2024年02月04日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包