Java将列表转换为数组,反之亦然

介绍:

在本文中, 我们将快速学习如何将Java List (例如ArrayList )转换为数组,反之亦然。 如果您希望总体上了解有关ArrayList的更多信息,请随时阅读我们有关Java ArrayLists的文章。

同时,让我们开始吧!

将Java

将Java 列表转换为数组非常简单直接。 我们可以使用toArray()方法的两种可用样式之一:

//Returns an Object-type array
Object[] toArray()//Returns an array of type T
T[] toArray(T[] array)

让我们尝试一下:

List<Integer> list = Arrays.asList(1, 2, 3, 4);Object[] arrayOfObjects = list.toArray();
Integer[] arrayOfIntegers = list.toArray(new Integer[list.size()]);

toArray(T [] array)方法接受并返回一个数组。 传递数组的主要目的是通知要返回的数组类型:

  • 如果传入的数组有足够的空间,则将元素存储在同一数组中,并返回对该数组的引用
  • 如果其空间大于元素数,则首先使用列表元素填充数组,并将其余值填充为null
  • 否则,如果没有足够的空间来存储元素,则会创建,填充并返回具有相同类型和足够大小的新数组

将Java数组转换为

要将数组转换为Java中的List ,我们可以选择以下方法之一:

1.天真的方法(迭代):

一种简单的方法是遍历所有数组元素,并将它们添加到新创建的List中:

public <T> List<T> convertArrToList(T[] array) {List<T> list = new ArrayList<>();for(T element : array) {list.add(element);}return list;
}

我们可以使用上述通用方法轻松地转换类型T的数组:

Integer[] arr = {1, 2, 3};
List<Integer> list = c.convertArrToList(arr);

2.

我们还可以在java.util.Arrays类中使用asList()方法来快速构造一个List:

public <T> List<T> convertArrToList(T[] array) {return Arrays.asList(array);
}

此方法接受数组作为其参数。

3.

众所周知, java.util.Collections提供了addAll(Collection c,T ... elements)方法,该方法将所有元素添加到给定的collection c中

由于List继承自Collection接口,因此可以使用此方法来发挥我们的优势:

public <T> List<T> convertArrToList(T[] array) {List<T> list = new ArrayList<>();Collections.addAll(list, array);return list; 
}

4. Java 8流:

从Java 8开始,我们首先可以通过Java数组打开流,然后使用Java Stream Collectors将其元素收集在List中

public <T> List<T> convertArrToList(T[] array) {return Arrays.stream(array).collect(Collectors.toList()); 
}

对于一组原语,我们将有类似以下内容:

int[] array = new int[] { 1, 2, 3 };
List<Integer> list = Arrays.stream(array).boxed().collect(Collectors.toList());

结论:

在本教程中,我们研究了如何将Java List转换为数组。 我们还介绍了在Java中将数组转换为List的另一种情况。

翻译自: https://www.javacodegeeks.com/2019/03/java-convert-list-array-vice-versa.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/343371.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工业交换机选择时需要注意什么?

工业以太网交换机是用于连接以太网的设备&#xff0c;应用十分广泛&#xff0c;主要应用于&#xff1a;煤矿安全、轨道交通、工厂自动化、水处理系统、城市安防等。现如今&#xff0c;市场上的工业交换机品牌厂家有很多&#xff0c;如何选购合适的以太网交换机是件令人困扰的事…

【渝粤教育】国家开放大学2018年秋季 0266-22T设计构成 参考试题

试卷编号&#xff1a;0272 座位号 2018—2019年度第一学期期末考试 创建小企业 试题 一、名词解释&#xff08;每小题10分&#xff0c;共40分&#xff09; 1.产品 商业模式 创业计划 市场定位 二、单项选择题&#xff08;每小题3分&#xff0c;共30分&#xff0c;每小题只…

html如何与php,html页面怎么跟php文件连接

HTML页面调用PHP文件的方法是要通过JavaScript来实现&#xff0c;在生成静态页面时&#xff0c;可以根据数据库id给html页面生成一个对应的JavaScript文件来调用PHP文件。HTML页面调用PHP文件的方法是要通过JavaScript来实现&#xff0c;在生成静态页面时&#xff0c;可以根据数…

【渝粤教育】国家开放大学2018年秋季 0350-21T幼儿园课程论 参考试题

试题编号&#xff1a;0365 座位号 2018-2019 学年度第一学期期末考试 电子商务概论 试题 一、名词解释题: &#xff08;每题5分&#xff0c;共20分&#xff09; 1.网上问卷调研法: 2&#xff0e;社交网络营销&#xff1a; 银行卡线上支付&#xff1a; 第三方物流企业配送&am…

为使节构建控制平面的指南第3部分-特定于域的配置API

这是探索为Envoy Proxy构建控制平面的系列文章的第3部分。 在本博客系列中&#xff0c;我们将研究以下领域&#xff1a; 采用一种机制来动态更新Envoy的路由&#xff0c;服务发现和其他配置 确定哪些组件构成了控制平面&#xff0c;包括后备存储&#xff0c;服务发现API&…

工业交换机中:千兆级别和快速级别传输效率对比

目前市面上的工业交换机种类繁多&#xff0c;我们在采购工业交换机的时候&#xff0c;一般都是按照传输速率来进行挑选的。千兆工业交换机和快速以太网交换机都是传输速率比较快的工业交换机&#xff0c;那么&#xff0c;他们之间有哪些区别呢&#xff1f;接下来就由飞畅科技的…

《操作系统A》期末考试复习题——大题51-62(手写笔记)

51、如果限制为两道的多道程序系统中&#xff0c;有4个作业进入系统&#xff0c;其进入系统时刻、估计运行时间为下图所示。系统采用SJF作业调度算法&#xff0c;采用SRTF进程调度算法。作业进入系统时刻、估计运行时间如下&#xff1a; 作业 进入系统时刻 估计运行时间/min …

【渝粤教育】国家开放大学2018年秋季 0553-21T色彩 参考试题

编号&#xff1a;0557 座位号&#xff1a; 2018&#xff5e;2019学年度第一学期期末考试 广告设计与制作 试题 2019年1月 一、设计题1&#xff08;每小题30分&#xff0c;共30分&#xff09; 请将“九州四海”设计成毎字44cm左右的与文字意义有直接联系的变形创意广告字体。 要…

php 登录记住密码,php 记住密码自动登录

做网站的时候会碰到记住密码&#xff0c;下次自动登录&#xff0c;一周内免登陆&#xff0c;一个月内免登陆这种需求。这种功能一般通过cookie来实现的。用户在登陆的时候&#xff0c;如果选择了记住密码或者一周内免登陆等这个选项的时候&#xff0c;则在用户成功登陆操作完成…

java8 默认方法_如何不使用Java 8默认方法

java8 默认方法警告&#xff1a;一旦阅读&#xff0c;您将无法看不到它 我在上一篇博客文章中讨论了默认方法的多重继承&#xff0c;以及它们在编译和运行时的行为。 这周&#xff0c;我将研究如何使用默认方法进行真正的继承&#xff0c;实际上&#xff0c;默认方法并非为之设…

【渝粤教育】国家开放大学2018年秋季 0706-22T行政管理学导论 参考试题

科目编号&#xff1a;[0709] 座位号 2018-2019学年度第一学期期末考试 初级会计实务&#xff08;一&#xff09; 试题 2019年 1 月 一、单选题&#xff08;本大题共10小题&#xff0c;每小题3分&#xff0c;共计30分&#xff09; &#xff08;★请考生务必将答案填入到下面对应…

工业以太网交换机的安装流程详解

工业以太网交换机是应用于工业控制领域的以太网交换机设备&#xff0c;所以设备的安装调试是很重要的一环&#xff0c;那么&#xff0c;我们在安装工业交换机的过程中需要注意什么呢&#xff1f;工业以太网交换机的安装流程是什么呢&#xff1f;接下来我们就跟随飞畅科技的小编…

【渝粤教育】国家开放大学2018年秋季 0734-22T出纳实务 参考试题

试卷代号&#xff1a;1021 劳动与社会保障法 试题 2019年1月 一、单项选择题&#xff08;每小题1分&#xff0c;共10分。在每小题的四个备选答案 中&#xff0c;选出一个正确的答案&#xff0c;请将正确答案的序号填在括号内&#xff09; 1&#xff0e;劳动者的劳动权利能力和…

带有Spring Security的OAuth 2.0快速指南

“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕&#xff1f; 尝试使用Okta API进行托管身份验证&#xff0c;授权和多因素身份验证。 在构建Web应用程序时&#xff0c;必须进行身份验证和授权。 然而&#xff0c;正确地做…

工业以太网交换机在实际应用中的优势

相信大家对交换机应该都不陌生&#xff0c;交换机可以说应用于网络通信的各个方面&#xff0c;它极大的帮助我们提高了工作效率&#xff1b;但是一般我们会分为工业交换机和普通交换机&#xff0c;在实际应用当中&#xff0c;不同的环境和场合我们还是要有所区分的&#xff0c;…

php soap debug,php soap客户端调试实例

1&#xff0c;php soap客户端代码&#xff0c;如下&#xff1a;try {$client new SoapClient(null,array(location >http://localhost/oms07/index.php?rapi,uri >http://localhost/oms07));$results $client->__soapCall(getFailParts, array(startTime>2013-1…

【渝粤教育】国家开放大学2018年秋季 1167t环境水利学 参考试题

试卷代号&#xff1a;1189 政府经济学 试题 2019年1月 一、单项选择题&#xff08;每小题1分&#xff0c;共10分&#xff09; 1.政府经济的依据主要是( )。 A.私人财产所有权 B.社会公共权力 C.道德劝说 D.法律制度 2.公共选择的基本原理是将( )的分析方法用于非市场的政治领域…

php vimrc配置文件,vim技巧:我的 .vimrc 配置文件,详解每一个配置项的作用

下面是我的 .vimrc 配置文件&#xff0c;每一个配置项都添加了注释说明&#xff0c;详解每一个配置项的作用&#xff0c;以便确认为什么要添加这个配置项。" 使用vim的modeline来设置当前文件的textwidth,避免输入超过78个字符时自动换行" 使用:verbose set textwidt…

【渝粤教育】国家开放大学2018年秋季 1317T社会工作行政(本) 参考试题

试卷代号&#xff1a;1325 妇产科学与儿科护理学 试题 2019年1月 一、单项选择题&#xff08;每题2分&#xff0c;共50分&#xff09; 1.正常胎心率的范围是&#xff08; &#xff09;。 A. 80&#xff5e;100次&#xff0f;分 B.100&#xff5e;120次&#xff0f;分 C.120&…

检测工业级交换机性能好坏的8种方法

如今&#xff0c;工业级交换机的品牌和种类可谓是非常多&#xff0c;对于工业级交换机用户来说&#xff0c;如何选择&#xff0c;如何检测交换机的性能可以说是非常头疼的事情。其实一般检测工业级交换机的性能好坏也是有方法的&#xff0c;下面杭州飞畅科技就给大家介绍一些常…