ArrayList和数组间的相互转换
ArrayList和数组间的相互转换
http://wanglihu.iteye.com/blog/243238
- 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对象或数组对象了吧!
ArrayList和数组间的相互转换相关推荐
- JavaArrayList和数组间的相互转换
一.ArrayList转换为数组 ArrayList提供public T[] toArray(T[] a)方法返回一个按照正确的顺序包含此列表中所有元素的数组,返回数组的运行时类型就是指定数组的运行时 ...
- list,set,map,数组间的相互转换
1.list转set Java代码 Set set = new HashSet( new ArrayList()); 2.set转list Java代码 List list = new ...
- list和数组间的相互转换(Java)
前言 如果觉得文字太啰嗦直接看文章中的代码块也是完全没问题的. list转数组 java中list集合转为数组的方法: 1.使用无参数toArray方法,语法格式"Object[] toAr ...
- Java中arraylist和数组的相互转换
Java中ArrayList和数组之间的相互转换 ArrayList转为数组 数组转为ArrayList 一.ArrayList转换数组 public static void arrayListToA ...
- java集合——集合与数组间的转换+算法
[0]README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合--集合与数组间的转换+算法 的相关知识: 0.2) for full sour ...
- Numpy中数组间运算
Numpy中数组间运算 1 数组与数的运算 [可以直接进行运算] arr = np.array([[1, 2, 3, 2, 1, 4], [5, 6, 1, 2, 3, 1]]) arr + ...
- PHP 对象、数组间的转换
/** * PHP 对象.数组间的转换 * * @author flyer0126 * @since 2012/05/03 **/ // 1. 利用(array)和(object),简单处理 $obj ...
- ArrayList与数组
ArrayList作用: 众所周知,一旦确定了数组的大小,改变它就不容易了.不过ArrayList类就可以解决动态更改数组大小的问题.ArrayList使用起来有点像数组,但是在添加和删除元素时,具有 ...
- php+对象+toarray_PHP 对象、数组间的转换
PHP 对象.数组间的转换 /** * PHP 对象.数组间的转换 * * @author flyer0126 * @since 2012/05/03 **/ // 1. 利用(array)和(obj ...
最新文章
- [SOJ] 简单哈希
- SpringBoot是如何解析HTTP参数的?
- 计算机缓存Cache机制理解
- PS制作立体效果——圆柱
- java类加public和不加public
- Lucene解析 - 基本概念
- java identifier expected,java – hibernate h2 embeddable list expected“identifier”
- 产品经理和程序员的黑话
- react-事件相关
- AngularJS1.5+ 笔记
- SpringBoot项目中遇到的BUG
- PTA-Hello World(C语言)
- [ZJOI2008]生日聚会
- Nginx 学习笔记(《深入理解Nginx:模块开发与架构解析》读书笔记)
- 常见设计规范与 Sketch 源文件下载集合
- 虚拟机14.00和CentOS7安装全部过程(百度网盘安装包)
- DLL load failed while importing _imaging怎么处理
- sumifs两个求和列如何计算_「sumifs」多条件求和函数Sumifs的用法 - seo实验室
- 更改Linux终端用户名显示颜色的PS1的用法
- 赴微软 软件开发测试工程师。
热门文章
- 您的手机上未安装应用程序 android 点击快捷方式提示未安装程序的解决
- Java排序算法(1)
- 自定义view-波纹扩散(圆扩散)
- 如何在BIOS里设置定时关机?
- 教你如何玩转redis-简单消息队列
- php制作会员签到打开,【PHP】织梦dedecms会员中心模板带会员签到赚金币功能
- Android性能优化之运算篇(二)
- 【Java并发编程】并发容器之CopyOnWriteArrayList
- swift_041(Swift的@noescape和@escaping)
- 中学计算机基础Word授课ppt,中学信息技术- 计算机硬件与软件基础知识课件.ppt...