首页 > 编程语言 >如何在 Java 8 中将 List 转换为可变参数对象

如何在 Java 8 中将 List 转换为可变参数对象

时间:2023-07-19 14:13:02浏览次数:43  
标签:toArray Java String List names 可变 new

我有一个函数 ( findByNames) 接受传播参数,如下例所示:

List<Users> findByNames(String... names)
{
  ...
} 

作为参数,我有一个列表:

List<String> names = asList("john","abraham");

所以我想将names列表转换为传播对象以使用findByNames函数,这可以使用 Java 8 吗?我试过这个解决方案:

MapUtils.getMap(names.toArray(new String[names.size()]))

但它不起作用!

谢谢你的时间。

 

Nam*_*man 6

 

将 转换List<String>为数组String[]

// Java-8(tag in question)
List<Users> users = findByNames(names.toArray(new String[0]));
// Java-11
List<Users> users = findByNames(names.toArray(String[]::new));
https://qa.1r1g.com/sf/ask/3829812661/
https://segmentfault.com/q/1010000042894788/a-1020000042894790

如果将列表转换为数组,String … 和 String[] 是相同的。

使用

Foo[] array = list.toArray(new Foo[list.size()]);

或者

Foo[] array = new Foo[list.size()];
list.toArray(array);

然后将该数组用作 String ... 函数的参数。

原文由 Alpesh Gediya 发布,翻译遵循 CC BY-SA 3.0 许可协议

https://segmentfault.com/q/1010000042894788/a-1020000042894790

标签:toArray,Java,String,List,names,可变,new
From: https://www.cnblogs.com/tiancai/p/17565414.html

相关文章

  • JAVA-- 在Java8 Parallel Stream中如何自定义线程池?
    使用ParallelStream时,在适当的环境中,通过适当地使用并行度级别,可以在某些情况下获得性能提升。如果程序创建一个自定义ThreadPool,必须记住调用它的shutdown()方法来避免内存泄漏。ParallelStream默认使用的线程池如下代码示例,ParallelStream并行处理使用的线程池是ForkJoi......
  • Java 生成旋螺矩阵
    @TestpublicvoidvirtualMain(){int[][]matrix=generateMatrix(9);MyArray.printSquareArray(matrix,2);}publicint[][]generateMatrix(intn){int[][]res=newint[n][n];intsquare=n*n,i=(int)......
  • 【技术积累】Java中的常用类【一】
    Math类Math类是Java中的一个数学工具类,提供了一系列常用的数学方法。下面是Math类的常用方法及其案例:abs()返回一个数的绝对值。intnum=-10;intabsNum=Math.abs(num);System.out.println(absNum);//输出:10解释:abs()方法返回num的绝对值,即10。ceil()返回大于或等......
  • java parallelStream 线程堵塞问题笔记
    定义:Stream(流)是JDK8中引入的一种类似与迭代器(Iterator)的单向迭代访问数据的工具。ParallelStream则是并行的流,它通过Fork/Join框架(JSR166y)来拆分任务,加速流的处理过程。最开始接触parallelStream很容易把其当做一个普通的线程池使用,因此也出现了上面提到的开始的时候打标,结束......
  • Java基础 变量、常量、作用域
    Java基础变量、常量、作用域变量-变量是什么:就是可以变化的量!-Java是一种强类型的语言,每个变量都必须声明其类型-Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域**注意事项:1每个变量都有类型,类型可以是基本类型,也可以是引用类型2......
  • java协程线程之虚拟线程
    前言众所周知,java是没有协程线程的,在我们如此熟知的jdk1.8时代,大佬们想出来的办法就是异步io,甚至用并行的stream流来实现,高并发也好,缩短事件处理时间也好;大家都在想着自己认为更好的实现方式;在来说说吧,我为什么会在今天研究这个破b玩意儿呢,这事情还的从一个月前的版本维护说......
  • 影响 Java 程序的性能的因素和性能指标
    有哪些因素会影响Java程序的性能?执行速度:程序的反应是否迅速,响应时间是否足够短内存分配:内存分配是否合理,是否过多地消耗内存或者存在泄漏启动时间:程序从运行到可以正常处理业务需要花费多少时间负载承受能力:当系统压力上升时,系统的执行速度、响应时间的上升曲线是否平缓......
  • JavaScript - 支持word上传的富文本编辑器
    ​ 在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper。通过知乎提供的思路找到粘贴的原理,通过TheViper找到粘贴图片的方法。其原理为一下步骤:监听粘贴事件;【用于插入图片】获取光标位置;【......
  • 浅谈Java容器
    Java容器容器类是Java以类库的形式供用户开发程序时可直接使用的各种数据结构。所谓数据结构就是以某种方式将数据组织在一起,并存储在计算机中。数据结构不仅可以存储数据,还支持访问和处理数据的操作。在面向对象思想里,一种数据结构被认为是一个容器。数组是一种简单的数据结构,......
  • Java基础入门
    一、注释方式标识符单行注释//多行注释/**/文档注释/***/二、基础1、进制进制前缀二进制0b八进制0十进制无十六进制0x2、数据类型typevarName[=value][{,varName[=value]}];bytenum1=127;shortnum2=32767;intn......