Android中ArrayList和数组相互转换

List—–>数组

在大家开发中应该经常碰到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[] toArray(T[] a)方法返回一个按照正确的顺序包含此列表中所有元素的数组;返回数组的运行时类型就是指定数组的运行时类型。如果列表能放入指定的数组,则返回放入此列表元素的数组。否则,将根据指定数组的运行时类型和此列表的大小分配一个新的数组。 如果指定的数组能容纳列表并有剩余空间(即数组的元素比列表的多),那么会将数组中紧跟在集合末尾的元素设置为 null。这对确定列表的长度很有用,但只 在调用方知道列表中不包含任何 null 元素时才有用。

数组—>List

那么又怎么将数组转换成为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 List 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));
}
}
}

总结

以上就是Android中ArrayList和数组相互转换的全部内容,希望本文的内容对大家开发Android能有所帮助。如果有疑问可以留言讨论。

(0)

相关推荐

  • Android编程使用Intent传递图片的方法详解

    本文实例讲述了Android编程使用Intent传递图片的方法.分享给大家供大家参考,具体如下: 基本思路是先把bitmap转化为byte数组,用Intent传递数组,在将数组转化为bitmap bitmap转化为byte数组的方法: private byte[] Bitmap2Bytes(Bitmap bm){ ByteArrayOutputStream baos = new ByteArrayOutputStream(); bm.compress(Bitmap.CompressFormat.

  • Android系列之Intent传递对象的几种实例方法

    在Android中intent传递对象主要有2种方式分别是,Bundle.putSerializable(Key,Object)和Bundle.putParcelable(Key, Object);当然这些Object是有一定的条件的,前者是实现了Serializable接口,而后者是实现了Parcelable接口,以下是我为大家做的一个实例 首先我们建立一个工程项目命名为:ObjectTestDemo 然后我们再修改main.xml布局文件,主要增加2个按钮view plaincopy to

  • Android编程实现使用Intent传输包含自定义类的ArrayList示例

    本文实例讲述了Android编程实现使用Intent传输包含自定义类的ArrayList.分享给大家供大家参考,具体如下: 前言 之前项目中通过Intent只是传输简单的字符串,这次因为需要在前一个页面联网获取对象数据,然后在下一个页面使用,所以考虑到使用Intent传输包含自定义类的ArrayList. Serializable Java的对象序列化指的是将那些实现了Serializable接口的对象转换成一个字节序列,并且能在需要的时候再将这个字节序列完全恢复为之前的对象. 想实现对象的序列

  • Android Activity中使用Intent实现页面跳转与参数传递的方法

    本文实例讲述了Android Activity中使用Intent实现页面跳转与参数传递的方法.分享给大家供大家参考,具体如下: 新建一个FirstAvtivity.java package com.zhuguangwei; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.O

  • android中Intent传值与Bundle传值的区别详解

    举个例子我现在要从A界面跳转到B界面或者C界面   这样的话 我就需要写2个Intent如果你还要涉及的传值的话 你的Intent就要写两遍添加值的方法 那么 如果我用1个Bundle  直接把值先存里边 然后再存到Intent中 不就更简洁吗? 另外一个例子如果我现在有Activity A ,B ,C:现在我要把值通过A经过B传给C你怎么传 如果用Intent的话 A-B先写一遍 再在B中都取出来 然后在把值塞到Intent中 再跳到C 累吗?如果我在A中用了 Bundle 的话  我把Bun

  • Android开发之利用Intent实现数据传递的方法

    本文实例讲述了Android利用Intent实现数据传递的方法.分享给大家供大家参考,具体如下: 在Android开发过程中,很多人都熟悉Intent,这是个用于在多个View之间共享数据的类.本节主要讲述通过点选ListView中的文本,把文本中的URL加载到一个新的页面上,并且打印出来.为了方便,我先把前面一篇<Android开发之利用jsoup解析HTML页面的方法>的代码重新贴一下,因为在上一节后,代码做了少许修改: try { doc = Jsoup.parse(new URL(&q

  • Android 通过Intent使用Bundle传递对象详细介绍

    Android 通过Intent使用Bundle传递对象 Android开发中有时需要在应用中或进程间传递对象,下面详细介绍Intent使用Bundle传递对象的方法. 被传递的对象需要先实现序列化,而序列化对象有两种方式:java.io.Serializable和android.os.Parcelable Java中使用的是Serializable,而谷歌在Android使用了自定义的Parcelable. 两种序列化方式的区别: 1.在使用内存的时候,Parcelable比Serializa

  • Android 使用Intent传递数据的实现思路与代码

    Intent是Android中一个非常重要的概念,跟这个词的本意(意图,目的)一样,这个类在Android中的作用就是要调用某个组建去做某一件事,比如通过startActivity启动一个Activity,通过startService启动一个Service,通过sendBroadcast发送一个广播等,它相当于各个组建间的一个桥梁.很重要的一点是这个过程是可以跨进程的,比如在应用中可以启动调用某个播放器组件(系统自身的或者第三方的)来播放一段视频,启动照相机程序拍照等等. 当我们启动视频播放器播

  • android中intent传递list或者对象的方法

    本文实例讲述了android中intent传递list或者对象的方法.分享给大家供大家参考.具体实现方法如下: 方法一: 如果单纯的传递List<String> 或者List<Integer>的话 就可以直接使用 代码如下: 复制代码 代码如下: intent.putStringArrayListExtra(name, value)  intent.putIntegerArrayListExtra(name, value) 方法二: 如果传递的是List<Object>

  • Android中ArrayList和数组相互转换

    List-–>数组 在大家开发中应该经常碰到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("王利虎"

  • Java中List与数组相互转换实例分析

    本文实例分析了Java中List与数组相互转换的方法.分享给大家供大家参考.具体如下: 今天写代码遇到一个奇怪的问题,具体代码不贴出了,写一个简化的版本.如下: ArrayList<String> list=new ArrayList<String>(); String strings[]=(String [])list.toArray(); 这样写代码个人觉得应该没什么问题,编译也没有问题.可是具体运行的时候报异常,如下:Exception in thread "mai

  • Android中String与int相互转换

    目录 一.如何将字串 String 转换成整数 int? 这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢? 二. 如何将整数 int 转换成字串 String ? 这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢? 一.如何将字串 String 转换成整数 int? 方法一: int i = Integer.parseInt([String]);或 i = Integer.parseInt([String],[int radix]); 方法二: int

  • Android中的JNI数组操作教程

    前言 JNI 中有两种数组操作,基础数据类型数组和对象数组,JNI 对待基础数据类型数组和对象数组是不一样的. 基本数据类型数组 对于基本数据类型数组,JNI 都有和 Java 相对应的结构,在使用起来和基本数据类型的使用类似. 在 Android JNI 基础知识篇提到了 Java 数组类型对应的 JNI 数组类型.比如,Java int 数组对应了 jintArray,boolean 数组对应了 jbooleanArray. 如同 String 的操作一样,JNI 提供了对应的转换函数:Ge

  • 聊一聊jdk1.8中的ArrayList 底层数组是如何扩容的

    一.结论先行 ArrayList在JDK1.8与JDK1.7底层区别 JDK1.7:ArrayList像饿汉式,直接创建一个初始容量为10的数组,当数组的长度不能容下所添加的内容时候,数组会扩容至原大小的1.5倍 JDK1.8:ArrayList像懒汉式,一开始创建一个长度为0的数组,当添加第一个元素时再创建一个始容量为10的数组,当数组的长度不能容下所添加的内容时候,数组会扩容至原大小的1.5倍 二.JDK1.8 ArrayList源码分析 1.ArrayList 属性 /** * 默认容量的

  • java中String,数组,ArrayList三者之间的转换

    ArrayList转为String和数组 造一个元素为Integer的ArrayList 为list_int 造一个元素为String 的 ArrayList 为list_str ArrayList list_int = new ArrayList<Integer>(); //Integer的List list_int.add(1); list_int.add(3); list_int.add(5); list_int.add(9); ArrayList<String> list_

  • Android中viewPager使用指南

    viewPager是谷歌官方提供的一种方便实现页面滑动效果的控件,可以直接使用也可以和fragment联合使用.这里只简单说下直接使用.  使用viewPager的步骤如下: (1)在布局中放入viewPager的控件  (2)设置加载到viewPager中的view  (3)编写viewPager特有的adapter  (4)实例化viewPager并给他绑定上步设置的adapter 这个步骤体现的也是MVC思想,可以参考我之前的文章http://www.jb51.net/article/78

  • 详解Android中解析XML的方法

    XML在各种开发中都广泛应用,Android也不例外.作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能.今天就由我向大家介绍一下在Android平台下几种常见的XML解析和创建的方法. 在Android中,常见的XML解析器分别为SAX解析器.DOM解析器和PULL解析器,下面,我将一一向大家详细介绍. SAX解析器: SAX(Simple API for XML)解析器是一种基于事件的解析器,它的核心是事件处理模式,主要是围绕着事件源以及事件处理器来工作的.当事

  • android中ViewPager结合Fragment进行无限滑动

    实现ViewPager结合Fragment实现无限循环切换,这里也是在适配器里面进行的,当然使用滑动监听也能够实现 import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.view.ViewGroup; import java.util.Array

  • Android中使用Post请求的方法

    本文实例讲述了Android中使用Post请求的方法.分享给大家供大家参考.具体如下: 一.需要用到的场景 在jQuery中使用$.post()就可以方便的发起一个post请求,在android程序中有时也要从服务器获取一些数据,就也必须得使用post请求了. 二.需要用到的主要类 在android中使用post请求主要要用到的类是HttpPost.HttpResponse.EntityUtils 三.主要思路 1.创建HttpPost实例,设置需要请求服务器的url. 2.为创建的HttpPo

随机推荐