list怎么转换成数组

问题描述:如何将List集合转换成String的数组? 本篇文章给大家谈谈list怎么转换成数组数据,以及如何将list转换成数组,希望对各位有所帮助,不要忘了收藏本站喔。

List数组怎么转换成int数组

list怎么转换成数组的相关图片

将List集合转换成String的数组的方法如下:

输入代码:

[java] view plain copy。

List<String> list = new ArrayList<String>();   。

list.add("a1");   。

list.add("a2");   。

String[] toBeStored = list.toArray(new String[list.size()]);   。

for(String s : toBeStored) {   。

System.out.println(s);   。

字符数组是指用来存放字符数据的数组。其定义的一般形式为: char 数组名[数据长度] 。字符数组用于存放字符或字符串,字符数组中的一个元素存放一个字符,它在内存中占用一个字节。C语言中没有字符串类型,字符串是存放在字符型数组中的。

用来存放字符数据的数组称为字符数组。字符数组中的一个元素存放一个字符。定义字符数组的方法与定义数值型数组的方法类似。

其定义的一般形式是:char 数组名[数据长度]。

例如:

char c[10];

c[0]='I'; c[1]=' '; c[2]='l'; c[3]='o'; c[4]='v'; c[5]='e'; c[6]=' '; c[7]='y'; c[8]='o'; c[9]='u';。

以上定义了c为字符数组,包含10个元素。

由于字符型数据是以整数形式(ASCII代码)存放的,因此也可以用整型数组来存放字符数据,例如:

int c[10];

但这时每个数组元素占2个字节的内存单元,浪费存储空间。[1]。

字符数组也可以是二维或多维数组,例如:

char c[5][10];

即为二维字符数组。

java中list怎么转为数组的相关图片

java中list怎么转为数组

1、list转数组

List<String> strList = new ArrayList<String>();。

strList.add("aa");。

strList.add("bb");。

Object[] objs = strList.toArray();。

--------------

如果要变成String数组,需要强转类型。

String[] strs = (String[]) strList.toArray(new String[0]);。

-----------------。

也可以指定大小:

String[] strs = strList.toArray(new String[strList.size()]);。

2、笨方法:

List<String> strList = new ArrayList<String>();。

strList.add("aa");。

strList.add("bb");。

String[] strs = new String[strList.size()];。

如何将List<实体类>强转成String[]数组的相关图片

如何将List<实体类>强转成String[]数组

list集合有个方法直接调用就可以了 Object [] obj = lsit.toArray(); 返回的就是数组了。

java 怎么把list转换成数组的相关图片

java 怎么把list转换成数组

for(int i=0;i<s.length;i++){//这是把s数组里面的东西添加到list里面去。

list.add(s[i]);。

list.toArray();//可以直接把list转换成数组。方法名我记不清楚了,你可以查下api。

java怎么把list转化成数组

ArrayList<String> list=new ArrayList<String>();。

String strings[]=(String [])list.toArray();。

这样写代码个人觉得应该没什么问题,编译也没有问题。可是具体运行的时候报异常,如下:Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object;。

但是这么写是没有问题的:

ArrayList<String> list=new ArrayList<String>();。

String strings[]=new String[list.size()];。

for(int i=0,j=list.size();i<j;i++){。

strings[i]=list.get(i);。

对于这个现象我们可以这么解释:Java中允许向上和向下转型,但是这个转型是否成功是根据Java虚拟机中这个对象的类型来实现的。Java虚拟机中保存了每个对象的类型。而数组也是一个对象。数组的类型是[Ljava.lang.Object。把[Ljava.lang.Object转换成[Ljava.lang.String是显然不可能的事情,因为这里是一个向下转型,而虚拟机只保存了这是一个Object的数组,不能保证数组中的元素是String的,所以这个转型不能成功。数组里面的元素只是元素的引用,不是存储的具体元素,所以数组中元素的类型还是保存在Java虚拟机中的。

根据上面的解释,我们可以把这个问题归纳到下面这个模型:

Object objs[]=new Object[10];。

String strs[]=(String[])objs;。

这样子和刚才上面编译错误是一样的。如果我们修改一下这个代码,如下:

String strs[]=new String[10];。

Object objs[]=strs;。

这样子就可以编译通过了。所以这个问题我们可以归结为一个Java转型规则的问题。下面谈一下Java数组对范型的支持问题。

JDK5中已经有了对范型的支持,这样可以保证在集合和Map中的数据类型的安全,可是,List的toArray方法返回的竟然是Object []让人很迷惑。个人感觉应该可以根据范型,直接返回相应的T []。仔细看了一下JDK的发现List转化为array有两个方法:

public Object[] toArray();。

这个方法把List中的全部元素返回一个相同大小的数组,数组中的所有元素都为Object类型。

public <T> T[] toArray(T[] a);。

这个方法把List中的全部元素返回一个相同大小的数组,数组中的所有元素都为T类型。

List如此设计是因为Java编译器不允许我们new范型数组。也就是说你不能这么定义一个数组:

T arr=new T[size];。

但是你却可以用T[]来表示数组,而且可以把数组强制转化为T[]。比如List中的public <T> T[] toArray(T[] a)是这么实现的:

public <T> T[] toArray(T[] a) {。

if (a.length < size)。

a = (T[])java.lang.reflect.Array.。

newInstance(a.getClass().getComponentType(), size);。

System.arraycopy(elementData, 0, a, 0, size);。

if (a.length > size)。

a[size] = null;。

return a;

从上面代码中可以看到,因为你不知道这个数组的类型,你必须通过反射机制创建这个数组(a.getClass().getComponentType()方法是取得一个数组元素的类型)。

最终,List转换为Array可以这样处理:

ArrayList<String> list=new ArrayList<String>();。

String[] strings = new String[list.size()];。

list.toArray(strings);。

反过来,如果要将数组转成List怎么办呢?如下:

String[] s = {"a","b","c"};。

List list = java.util.Arrays.asList(s);。

原文地址:http://www.qianchusai.com/list%E6%80%8E%E4%B9%88%E8%BD%AC%E6%8D%A2%E6%88%90%E6%95%B0%E7%BB%84.html

完整的搞笑脱口秀稿子,幽默又有深度的脱口秀稿子

完整的搞笑脱口秀稿子,幽默又有深度的脱口秀稿子

网络语hlg是什么意思,网络用语hl是什么意思男女

网络语hlg是什么意思,网络用语hl是什么意思男女

华为派遣工怎样才能成为正式员工,华为派遣工和正式工区别

华为派遣工怎样才能成为正式员工,华为派遣工和正式工区别

kodi自动播放下一集,kodi18自动播放下一集

kodi自动播放下一集,kodi18自动播放下一集

一年级英语课堂游戏,适合小学一年级英语教学的游戏

一年级英语课堂游戏,适合小学一年级英语教学的游戏

从字含义,从字在名字中的意思

从字含义,从字在名字中的意思

女生说你涉水而过什么意思,你涉水而过 不代表拥有这条河什么意思

女生说你涉水而过什么意思,你涉水而过 不代表拥有这条河什么意思

英语下册第八单元单词,年级下册英语第八单元单词朗读

英语下册第八单元单词,年级下册英语第八单元单词朗读

游山玩水日记,游山玩水日记三年级

游山玩水日记,游山玩水日记三年级

牛津英语五年级下册语法

牛津英语五年级下册语法

中国知网在线服务平台 知网免费在线查文献 知网不支持在线阅读 知网阅读工具 知网论文在线结果查询 中国知网免费在线阅读 中国知网官网入口在线 本科文章查重会检测ai辅写疑似度吗 AI智能写作生成器 知网论文在线查重步骤 浏览器下载记录删了怎么恢复 知网ai工具在哪里 论文在线阅读中国知网知网的文献管理工具 知网文献检索工具 知网论文可以免费在线阅读吗 中国知网期刊分析器 知网文章在线阅读 觅知网ppt在线编辑 知网文献下载工具 中国知网免费入口在线阅读 学校查重会查ai辅写吗 AI智能工具app 知网专用阅读器 知网研学在线阅读打不开 中国知网的外文不能在线阅读 知网文献在线阅读 知网在线阅读要付费吗 知网在线服务平台 知网在线阅读要钱吗