List和数组互转方法以及踩坑点

news2024/11/14 23:33:26

一、数组转List

1. 使用for循环逐个添加

String[] array = {"A", "B", "C"};
List<String> list = new ArrayList<>();
for (String element : array) {
    list.add(element);
}

2. 使用Arrays.asList(arr)

String[] array = {"A", "B", "C"};
List<String> list = Arrays.asList(array);
//list.add("D");//UnsupportedOperationException
//list.remove("A");//UnsupportedOperationException

注意:Arrays.asList()返回的是一个Arrays中的内部类ArrayList对象(不是我们平时使用的那个),这个list没有重写实现添加和删除方法,其大小是固定不变的,当调用它的add和remove方法时,会默认抛出UnsupportedOperationException异常。

二、List转数组

1. list.toArray(T[] a)

List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
Object[] objects = list.toArray();//toArray()返回的是Object数组
String[] array = list.toArray(new String[0]);//传入一个大小为0的String数组来指定返回值类型

toArray()方法返回的是Object数组,可使用list.toArray(T[] a)传入一个指定类型的数组,获得的结果数据即为指定类型的数组。

ArrayList中toArray(T[] a)方法的源码如下,

  • 当传入的数组容量小于list的大小时,会直接将列表元素copy到一个新数组,传入的数组仅用来指定新数组类型。
  • 当传入的数组容量大于等于list的大小时,则直接将列表元素拷贝到这个数组并将其返回。
    在这里插入图片描述

2. list.stream().toArray(T[] :: new)

将list转换为stream流,再转换为数组

String[] arr = list.stream().toArray(String[]::new);

通常是在需要对list的元素做中间处理后再转换为数组时,才用这个方法,如下

//给每个元素再加上一个字符串再转为数组
 String[] arr1 = list.stream().map(s -> s+"str").toArray(String[]::new);

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

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

相关文章

机器学习笔记之优化算法(十一)梯度下降法:凸函数VS强凸函数

机器学习笔记之优化算法——梯度下降法&#xff1a;凸函数VS强凸函数 引言凸函数&#xff1a;凸函数的定义与判定条件凸函数的一阶条件凸函数的梯度单调性凸函数的二阶条件 强凸函数强凸函数的定义强凸函数的判定条件强凸函数的一阶条件强凸函数的梯度单调性强突函数的二阶条件…

java.sql.SQLFeatureNotSupportedException 问题及可能的解决方法

目录 问题 分析&#xff1a; 解决方法 问题 java.sql.SQLFeatureNotSupportedException 分析&#xff1a; 可能是你的 druid的maven依赖版本太低了&#xff0c;我的以前是1.1.16&#xff0c;就出现了异常&#xff01; 解决方法 把druid的maven依赖版本调高&#xff01; 运…

tui.calender日历在vue中的使用1.0

官网&#xff1a;https://ui.toast.com/tui-calendar github&#xff1a;https://github.com/nhn/tui.calendar/tree/main 月、周、日视图都有&#xff0c;拖拽也比较方便&#xff0c;但是自己用起来比较费劲&#xff0c;参考文档写得不全&#xff0c;做个记录日后方便参考&…

考研408 | 【计算机网络】 数据链路层

导图&#xff1a; 数据链路层概念&#xff1a; 结点&#xff1a;主机、路由器 链路&#xff1a;网络中两个结点之间的物理通道&#xff0c;链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。 数据链路&#xff1a;网络中两个结点之间的逻辑通道&#xff0…

idea中提示Unsupported characters for the charset ‘ISO-8859-1‘

application.properties中文注释拉黄线 &#xff0c;提示Unsupported characters for the charset ISO-8859-1 解决办法&#xff1a; 注意&#xff1a; 改完之后之前输入的中文就变成“ &#xff1f;&#xff1f;&#xff1f;”了&#xff0c;建议备份一下 1、打开setti…

并发——什么是线程死锁?如何避免死锁?

文章目录 1. 认识线程死锁2. 如何避免线程死锁? 1. 认识线程死锁 线程死锁描述的是这样一种情况&#xff1a;多个线程同时被阻塞&#xff0c;它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞&#xff0c;因此程序不可能正常终止。 如下图所示&#xff…

软件验收测试包括几种类型?验收测试报告有什么好处?

在软件开发中&#xff0c;验收测试是软件项目在开发完成后进行的最后一项测试工作。它是确认软件是否满足预期要求&#xff0c;并准备将软件交付用户的核心环节&#xff0c;它可以确保软件的质量和功能符合用户的需求和期望。 一、软件验收测试的类型 软件验收测试可以分为多…

网络安全【黑客】面试题汇总

前言 一眨眼2023年已经过去一大半&#xff0c;不知道大家有没有找到心仪的工作。作为一个安全老鸟&#xff0c;工作这么多年&#xff0c;面试过很多人也出过很多面试题目&#xff0c;也在网上收集了各类关于渗透面试题目&#xff0c;里面有我对一些问题的见解&#xff0c;希望…

C++结构体部分显式构造导致编译异常分析

今天调试了一段代码如下 #include <iostream> #include <shared_mutex>#define SECT_NUM 2 #define DI_HIGH_PERM 2 #define DI_READ 1 #define DI_WRITE 2 #define FMT_BIN 1#define USER_PATH "d:\\fafiles\\dbtest\\"typedef unsigned long DW…

UE4 像素流 学习笔记

使用场景&#xff1a; 1、登录服务器&#xff0c;服务器上安装node.js Download | Node.js (nodejs.org) 点击该网址 点击Windows Installer 2、登录服务器&#xff0c;拷贝本地UE Pixel Streaming包到服务器 启用插件后重启该项目 3、登录服务器&#xff0c;修改\Sample\P…

MobXterm设置快捷键ctrl+v

问题&#xff1a; MobXterm是一个很好的ssh软件&#xff0c;粘贴按键反人性Shift Insert(Ins)&#xff0c;大部分人还是习惯CtrlV 原因&#xff1a;替换快捷键设置 CtrlV 方法&#xff1a;菜单setting->keybroad shotcuts->Paste in termainal

Hello,SpringBoot!

一、回顾什么是Spring Spring是一个开源框架&#xff0c;2003 年兴起的一个轻量级的Java 开发框架&#xff0c;作者&#xff1a;Rod Johnson Spring是为了解决企业级应用开发的复杂性而创建的&#xff0c;简化开发。 Spring是如何简化Java开发的 为了降低Java开发的复杂性…

金蝶,「起舞」在大模型时代

在过去的几年时间里&#xff0c;基于EBC的平台能力&#xff0c;金蝶已经走出了一个新的进化之路&#xff0c;这条路是对自身产品竞争力的重新构建&#xff0c;也更是对企业数字化转型需求的更大程度满足。 如今&#xff0c;苍穹GPT大模型更是让这种竞争力和服务力更向前一步。…

leetcode 881. 救生艇(java)

救生艇 leetcode 881. 救生艇题目描述代码 双指针算法 leetcode 881. 救生艇 难度 - 中等 leetcode 881. 救生艇 题目描述 给定数组 people 。people[i]表示第 i 个人的体重 &#xff0c;船的数量不限&#xff0c;每艘船可以承载的最大重量为 limit。 每艘船最多可同时载两人&a…

【Matlab】极限学习机-遗传算法(ELM-GA)函数极值寻优——非线性函数求极值

往期博客&#x1f449; 【Matlab】BP神经网络遗传算法(BP-GA)函数极值寻优——非线性函数求极值 【Matlab】GRNN神经网络遗传算法(GRNN-GA)函数极值寻优——非线性函数求极值 【Matlab】RBF神经网络遗传算法(RBF-GA)函数极值寻优——非线性函数求极值 【Matlab】Elman神经网络遗…

英国选举委员会泄露选民信息

The Hacker News 网站披露&#xff0c;2014 年至 2022 年间&#xff0c;英国选举委员会遭遇网络攻击&#xff0c;泄露大量选民的个人信息&#xff0c;目前委员会已经通知英国信息专员办公室。 英国选举委员会在推特上表示 2021 年 8 月&#xff0c;网络攻击者利用某安全漏洞&am…

MySQL索引1——索引基本概念与索引结构(B树、R树、Hash等)

目录 索引(INDEX)基本概念 索引结构分类 BTree树索引结构 Hash索引结构 Full-Text索引 R-Tree索引 索引(INDEX)基本概念 什么是索引 索引是帮助MySQL高效获取数据的有序数据结构 为数据库表中的某些列创建索引&#xff0c;就是对数据库表中某些列的值通过不同的数据结…

使用Flask.Request的方法和属性,获取get和post请求参数(二)

1、Flask中的request 在Python发送Post、Get等请求时&#xff0c;我们使用到requests库。Flask中有一个request库&#xff0c;有其特有的一些方法和属性&#xff0c;注意跟requests不是同一个。 2、Post请求&#xff1a;request.get_data() 用于服务端获取客户端请求数据。注…

JVM:运行时数据区域(白话文)

最近有时间在看一本<深入了解Java虚拟机>的书籍&#xff0c;这本书是一个中国人&#xff0c;名叫周志明的人写的。相比于其他翻译过来的技术书籍&#xff0c;这本书还是挺通俗易懂的。先前有和彬哥在聊&#xff0c;他说如果是自己一个人看的话会很枯燥&#xff0c;很难坚…

智慧城市美术效果Unity实现笔记流程

智慧城市美术效果Unity实现笔记流程&#xff1a; 参考 对标 效果图&#xff1a; 写实类-参考图&#xff1a; (以上均为网络搜索效果,有落叶大师&#xff0c;以及其他优秀开发者效果图参考) 未来类-参考图&#xff1a; 如上图所示,智慧城市基本分为 这两个大类&#xff0c;偏写…