ArrayList和数组之间的一些转换
1. ArrayList和数组之间的一些转换
ArrayLlist底层就是用数组实现的,并且提供了两个方法给我们来将集合转换成数组
1. public Object[] toArray() 这个数组中存储的是object对象
2. public <T> T[] toArray(T[] a) 这个数组中存储的是指定的T类型的对象
说说使用这两个方法可能会出现的问题
使用第一个方法经常会出现类型转换的问题
代码:
ArrayList<String> list = new ArrayList<String>();
String[] whereArgs = (String[]) list.toArray();
就会抛出类转换异常。这样转换时不对的,这里涉及到了泛型的强转问题。
这里我们要简单的说明下。在不带参数的时候,函数是自己去new一个Object数组,长度就是list的长度。然后,对这个数组赋值的时候,是把String赋值给Object,自然会报错。
我们运行:String[] lstArray = (String[]) lst.toArray();
会有如下异常:
Exception in thread"main"java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to[Ljava.lang.String;
atcom.study.ArrayAndList.main(ArrayAndList.java:38)
就是把Object对象试图转化成String对象的时候报错了。
toArray返回的时候,实际上是把传入的参数再次返回回来。如果是不带参数的调用,返回的就是自行new的数组。因为返回值需要统一类型,所以都是返回的Object[]。我们拿到后,进行强制转换就行了。
第二个方法:
代码:
ArrayList<String> list = new ArrayList<String>();
String[] whereArgs = new String[list.size()];
whereArgs = list.toArray(whereArgs);
这样写是ok的,但是如果创建数组对象时,没有指定数组的大小,就会报错
这个方法中的参数a相当于c语言中的传入性参数,将一个空数组传给集合,集合将其填满,再返回。
ArrayList和数组之间的一些转换相关推荐
- List集合与Array数组之间的互相转换
1.数组转化成list集合(采用java中集合自带的asList()方法就可以完成转换了) String[] array = new String[] {"123", " ...
- ArrayList与数组
ArrayList作用: 众所周知,一旦确定了数组的大小,改变它就不容易了.不过ArrayList类就可以解决动态更改数组大小的问题.ArrayList使用起来有点像数组,但是在添加和删除元素时,具有 ...
- Java中arraylist和数组的相互转换
Java中ArrayList和数组之间的相互转换 ArrayList转为数组 数组转为ArrayList 一.ArrayList转换数组 public static void arrayListToA ...
- java arraylist与数组转换_java中String,数组,ArrayList三者之间的转换
免费资源网 - https://freexyz.cn/ ArrayList转为String和数组 造一个元素为Integer的ArrayList 为list_int 造一个元素为String 的 Ar ...
- List和数组之间互相转换
List和数组之间互相转换 List转数组 Integer[] numberArr=new Integer[]{1,2,3} 方法一:使用Arrays.asList() 不支持添加.删除元素(如果不需 ...
- NumPy — 创建全零、全1、空、arange 数组,array 对象类型,astype 转换数据类型,数组和标量以及数组之间的运算,NumPy 数组共享内存
NumPy 简介 一个用 python 实现的科学计算包.包括: 1.一个强大的 N 维数组对象 Array : 2.比较成熟的(广播)函数库: 3.用于整合 C/C++ 和 Fortran 代码的工 ...
- C# 16进制与字符串、字节数组之间的转换
在串口通讯过程中,经常要用到 16进制与字符串.字节数组之间的转换 字符串转16进制字节数组 1 private static byte[] strToToHexByte(strin ...
- 数组和JSON之间的格式转换
数组和JSON之间的格式转换 主要代码: const a = JSON.stringify(jsonStrings) //object转json const c = JSON.parse(a) //j ...
- keras自定义simm作为损失函数,并且实现Tensor和数组之间的转换
ssim介绍 在比较两幅图像误差或者相似度时,常用的衡量方法有MAE和MSE, https://blog.csdn.net/u011875342/article/details/78036380 但是 ...
最新文章
- Resource entery xx is already defined
- Java 泛型 super extends 边界
- 深度解析mysql登录原理
- log4j按天生成且有按照文件大小分割_论文阅读TGM:轨迹生成
- Winform中实现对照片添加文字和图片水印(附代码下载)
- 头部ct能检查出什么_【安全用药】做CT检查时应注意什么?
- Flash AS3.0实例教程:构建简单的声音可视化程序(波型图)
- CheckBox复选框控件
- groupby java_Java流-在GroupBy之后获取内部元素
- 读书|《赤裸裸的统计学》:统计数字很容易说谎
- visio中图形任意位置添加连接点
- Python Crash Course读书笔记 - 第18章:GETTING STARTED WITH DJANGO
- R语言-来自Prosper的贷款数据探索
- 陀螺仪和加速度计MPU6050的单位换算方法
- 算法Day8|字符串专题二 剑指 Offer 58 - II. 左旋转字符串,28. 找出字符串中第一个匹配项的下标,459. 重复的子字符串
- numpy.ndarray中对于字符串的处理
- 与贸易有关的知识产权协议 (转)
- 【MATLAB】分时段分类汇总代码
- AndroidOTA升级流程
- matlab基础及应用教程,初学者宝典—Matlab基础及其应用教程 PDF 文字版[2M]