ArrayList和数组间的相互转换

开发中不免碰到List与数组类型之间的相互转换,举一个简单的例子: 

package test.test1;  
import java.util.ArrayList;  
import java.util.List;  
public class Test {  /** * @param args */  public static void main(String[] args) {  List list=new ArrayList();  list.add("王利虎");  list.add("张三");  list.add("李四");  int size=list.size();  String[] array=new String[size];  for(int i=0;i<list.size();i++){  array[i]=(String)list.get(i);  }  for(int i=0;i<array.length;i++){  System.out.println(array[i]);  }  }  
}  

  正如上面所列举的,当要将ArrayList类型的数据转换为String[]的时候,必须对List类型进行遍历,其实没有这种必要,List提供给我们一个很好的方法解决List转换成为数组的问题,不防再看一个例子: 

package test.test1; 
import java.util.ArrayList; 
import java.util.List; 
public class Test {  public static void main(String[] args) {  List<String> list=new ArrayList<String>();  list.add("王利虎");  list.add("张三");  list.add("李四");  int size=list.size();  String[] array = (String[])list.toArray(new String[size]);  for(int i=0;i<array.length;i++){  System.out.println(array[i]);  }  }  
}  

  你是否发现这才是你想要的呢?其实很简单,ArrayList提供public <T> T[] toArray(T[] a)方法返回一个按照正确的顺序包含此列表中所有元素的数组;返回数组的运行时类型就是指定数组的运行时类型。如果列表能放入指定的数组,则返回放入此列表元素的数组。否则,将根据指定数组的运行时类型和此列表的大小分配一个新的数组。 
如果指定的数组能容纳列表并有剩余空间(即数组的元素比列表的多),那么会将数组中紧跟在集合末尾的元素设置为 null。这对确定列表的长度很有用,但只 在调用方知道列表中不包含任何 null 元素时才有用。 
    那么又怎么将数组转换成为List呢?不防再看一个小小的例子,如下所示: 

package test.test1;  
import java.util.ArrayList;  
import java.util.List;  
public class Test {  public static void main(String[] args) {  String[] array=new String[3];  array[0]="王利虎";  array[1]="张三";  array[2]="李四";  List<String> list=new ArrayList<String>();  for(int i=0;i<array.length;i++){  list.add(array[i]);  }  for(int i=0;i<list.size();i++){  System.out.println(list.get(i));  }  }  
}  

  你是不发现很费事啊?其实数组转换成为List的问题Arrays对象也提供给我们public static <T> List<T> asList(T... a)供我们调用, 试运行下面的例子: 

package test.test1;  import java.util.Arrays;  
import java.util.List;  public class Test {  public static void main(String[] args) {  String[] array=new String[3];  array[0]="王利虎";  array[1]="张三";  array[2]="李四";  List<String> list=Arrays.asList(array);  for(int i=0;i<list.size();i++){  System.out.println(list.get(i));  }  }  
}  

  简单吧,asList方法返回一个受指定数组支持的固定大小的列表,此方法同 Collection.toArray 一起,充当了基于数组的 API 与基于 collection 的 API 之间的桥梁。返回的列表是可序列化的,并且实现了 RandomAccess。除此之外, 此方法还提供了一个创建固定长度的列表的便捷方法,该列表被初始化为包含多个元素: 

package test.test1;  
import java.util.Arrays;  
import java.util.List;  
public class Test1 {  public static void main(String[] args) {  List<String> list = Arrays.asList("王利虎","张三","李四");  for(int i=0;i<list.size();i++){  System.out.println(list.get(i));  }  }  
}  

  下次遇到这样的问题,你一定会想到它,不会再for你的List对象或数组对象了吧! 

转载于:https://www.cnblogs.com/hejunbiz/p/3638868.html

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

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

相关文章

计算机二进制基础列式,计算机基础;十进制数100对应的二进制数、八进制数和十六进制数分别是...

中计数采用了多种记数制,比如&#xff1a;十进制,六十进制(六十秒为一分,六十分为一小时,即基数为60,运算规则是逢六十进一),…….在计算机中常用到十进制数、二进制数、八进制数、十六进制数等,下面就这几种在计算机中常用的数制来介绍一下.1&#xff0e;十进制数我们平时数数…

第一个被赋予公明身份的机器人_一文读懂机器人的“眼睛”

看过漫威电影的同学都知道&#xff0c;钢铁侠在装甲里一眨眼&#xff0c;就通过眼球追踪操控人机互动&#xff0c;集黑科技于一身的装备简直不要太炫酷。如今&#xff0c;我们再回头看钢铁侠的AI识别系统&#xff0c;不禁思考这背后的视觉技术。如何让机器人像人类一样获取视觉…

Dede cms文章内容管理系统安全漏洞!如何有效防止DEDE织梦系统被挂木马安全设置...

第一、安装Dede的时候数据库的表前缀&#xff0c;最好改一下&#xff0c;不要用dedecms默认的前缀dede_,可以改成ljs_,随便一个无规律的、难猜到的前缀即可。 第二、后台登录一定要开启验证码功能&#xff0c;将默认管理员admin删除&#xff0c;改成一个自己专用的&#xff0c;…

太和二中计算机考试,安徽省太和二中高二数学下册期末考试试题精选

安徽省太和二中高二数学下册期末考试试题精选一.选择题(50分)1.设 是两条不同的直线, 是两个不同的平面,下列命题中正确的是( D )A . 若 , , ,则 B.若 , , ,则C.若 , , ,则 D.若 , , ,则2. 若 &#xff0c;则函数 的两个零点分别位于区间( A )A. 和 内 B. 和 内 C. 和 内 D. 和…

git获取本地版本号_Git使用小结

Git1.Git介绍Git是一个开源的分布式版本控制系统&#xff0c;是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件&#xff0c;Git可以使用本地创建仓库与网络仓库&#xff0c;解决了集中管理型版本控制软件存在的一些问题(CVS、VSS、SVN)。2.Gi…

计算机翻译字串符,字符的计算机处理和显示 外文翻译.doc

字符的计算机处理和显示 外文翻译本科毕业设计(论文)外文翻译英文翻译英文ON COMPUTERISATION AND REPRESENTATIONOF CHARACTERSThe commercial need to computerise contours of objects has intensified over recent years as more and more applications endeavour to seek …

sql server2008如何创建外键

原文地址&#xff1a;http://blog.csdn.net/zuozuo1245/article/details/8644115 以前创建数据库时就是有主键的创建了主键&#xff0c;但是表之间的关系没有联系&#xff0c;要建数据库关系图只有主键没有外键时不行的。 建外键的前提是此外键必须是另外一个表的主键。建外键的…

Hibernate陷阱

我已经使用Hibernate已有一段时间了&#xff0c;当我一段时间不使用Hibernate项目时&#xff0c;发现自己犯的错误与上次相同。 因此&#xff0c;这是我的监视清单&#xff0c;希望对其他人也有用。 实现hashCode和equals 通常&#xff0c;应该始终实现这些方法&#xff0c;但…

字符集_第07期:有关 MySQL 字符集的 SQL 语句

本篇为理清字符集的续篇(上一篇&#xff1a;第06期&#xff1a;梳理 MySQL 字符集的相关概念)&#xff0c;重点讲述字符集涉及到的 sql 语句用法。一、character introducer翻译过来就是字符引导。也就是针对字符串&#xff0c;显式的给定一个字符编码和排序规则&#xff0c;不…

c语言main函数的参数argc,argv说明

main函数参数argc&#xff0c;argv说明 C/C语言中的main函数&#xff0c;经常带有参数argc&#xff0c;argv&#xff0c;如下&#xff1a; int main(int argc, char** argv) int main(int argc, char* argv[]) 这两个参数的作用: argc 是指命令行输入参数的个数(以空白符分隔)…

怎么调整计算机显示屏,电脑显示器怎样调大屏幕

电脑显示器怎样调大屏幕你们知道怎么调整电脑显示器的屏幕吗?下面是应届毕业生小编带来的关于电脑显示器怎样调大屏幕的内容&#xff0c;欢迎阅读!电脑显示器怎样调大屏幕?以前的xp系统是在桌面点击右键然后选择属性&#xff0c;在属性里设置分辨率的。而win7则有点不同&…

使用jstat报告自定义JVM指标集

我一直缺少在JStat中配置自定义标头的可能性 。 当然&#xff0c;有很多预定义的数据集&#xff0c;但是如果我们可以创建自己的数据集&#xff0c;那就更好了。 正如您可能已经设计的那样&#xff0c;我正在写这篇文章&#xff0c;因为这样的功能当然可用&#xff1a;)不幸的是…

XP退役对整个互联网安全的问题

如果你的电脑还是XP&#xff0c;那么请你看看我写的内容吧。 4月8好微软结束支持之后依然可以运行XP和office2003&#xff0c;但是会带来潜在风险&#xff0c;首先为安全性和合规性分析&#xff0c;比如黑客攻击&#xff1b;其次为缺少软硬件支持&#xff0c;许多电脑硬件和…

python在线教育平台项目面试_【松勤软件自动化测试】selenium+python面试题目总结...

1. WebDriver原理webDriver是按照client/server模式设计&#xff0c;client就是我们的测试代码&#xff0c;发送请求&#xff0c;server就是打开的浏览器来打开client发出的请求并做出响应。具体的工作流程&#xff1a;webdriver打开浏览器并绑定到指定端口。启动的浏览器作为r…

win7打开计算机死机,win7系统进入桌面总是死机或者卡死怎么办

??最近有位深度技术win7旗舰版用户的电脑总是在进入桌面的时候莫名其妙的死机或者卡死&#xff0c;遇到这种情况我们应该怎么办呢&#xff1f;我们可以通重启资源管理器来解决屏幕卡死的问题&#xff0c;首先我们要打开任务管理器&#xff0c;下面由小编来跟大家介绍一下win7…

二级计算机excel以宏保存,Excel宏保存

2 个答案:答案 0 :(得分&#xff1a;3)像这样 -Sub SaveSheet()Dim wbkDashboard As WorkbookDim wsTarget As WorksheetSet wsTarget Thisworkbook.worksheets("Sheet1")Dim strFileName As StringstrFileName wsTarget.Range("B8").Value _& Forma…

以太网例程_开关量转以太网的应用

由于工业以太网的快速冗余自愈能力以及实时性方面问题的逐步解决&#xff0c;工业以太网技术正在逐步深入至工业控制网络的现场设备层应用&#xff0c;即直接基于工业以太网通信来控制现场设备的运行&#xff0c;利用开关量控制模块提供的以太网转开关量功能&#xff0c;计算机…

hbase+hive应用场景

一.Hive应用场景本文主要讲述使用 Hive 的实践&#xff0c;业务不是关键&#xff0c;简要介绍业务场景&#xff0c;本次的任务是对搜索日志数据进行统计分析。集团搜索刚上线不久&#xff0c;日志量并不大 。这些日志分布在 5 台前端机&#xff0c;按小时保存&#xff0c;并以小…

CPU缓存越大计算机的性能越好,CPU缓存真的越大越好?小心你的钱包

除了内存和硬盘&#xff0c;电脑还有一种超快速的存储设备&#xff0c;就是CPU缓存当你想到你电脑当中的存储设备时&#xff0c;你可能想到的是DDR内存、显卡上的显存、或者更有可能只是机械硬盘和SSD。但其实还有一种超快速的存储设备&#xff0c;对我们习以为常的、现代电脑的…

rostcm6情感分析案例分析_电商评论情感分析

并可以实现云图的可视化.7.2 R的实现这里需要安装几个必须包&#xff0c;因为有几个包安装比较复杂&#xff0c;这里给了链接http&#xff1a;//blog.csdn.net/cl1143015 ... 82731大家可以参看这个博客安装包.安装完成后就可以开始R文本挖掘了&#xff0c;下面代码说明性文字比…