java list与数组之间的转换详细解析_java

1 数组转换为List
调用Arrays类的静态方法asList。

asList
public static <T> List<T> asList(T... a)Returns a fixed-size list backed by the specified array. (Changes to the returned list "write through" to the array.) This method acts as bridge between array-based and collection-based APIs, in combination with Collection.toArray(). The returned list is serializable and implements RandomAccess.
This method also provides a convenient way to create a fixed-size list initialized to contain several elements:

List<String> stooges = Arrays.asList("Larry", "Moe", "Curly");

Parameters:
a - the array by which the list will be backed
Returns:
a list view of the specified array

用法:API中提供了一种使用的方法。更为常用的示例代码:

复制代码 代码如下:

String[] arr = new String[] {"str1", "str2"};
List<String> list = Arrays.asList(arr);

2 List转换为数组
这里的List以ArrayList为例,ArrayList的API提供了两种可供使用的函数。

toArray
public Object[] toArray()Returns an array containing all of the elements in this list in proper sequence (from first to last element).
The returned array will be "safe" in that no references to it are maintained by this list. (In other words, this method must allocate a new array). The caller is thus free to modify the returned array.

This method acts as bridge between array-based and collection-based APIs.

Specified by:
toArray in interface Collection<E>
Specified by:
toArray in interface List<E>
Overrides:
toArray in class AbstractCollection<E>
Returns:
an array containing all of the elements in this list in proper sequence
See Also:
Arrays.asList(Object[])

--------------------------------------------------------------------------------
toArray
public <T> T[] toArray(T[] a)Returns an array containing all of the elements in this list in proper sequence (from first to last element); the runtime type of the returned array is that of the specified array. If the list fits in the specified array, it is returned therein. Otherwise, a new array is allocated with the runtime type of the specified array and the size of this list.

If the list fits in the specified array with room to spare (i.e., the array has more elements than the list), the element in the array immediately following the end of the collection is set to null. (This is useful in determining the length of the list only if the caller knows that the list does not contain any null elements.)

Specified by:
toArray in interface Collection<E>
Specified by:
toArray in interface List<E>
Overrides:
toArray in class AbstractCollection<E>
Parameters:
a - the array into which the elements of the list are to be stored, if it is big enough; otherwise, a new array of the same runtime type is allocated for this purpose.
Returns:
an array containing the elements of the list
Throws:
ArrayStoreException - if the runtime type of the specified array is not a supertype of the runtime type of every element in this list
NullPointerException - if the specified array is null

用法:示例代码:

复制代码 代码如下:

List<String> list = new ArrayList<String>();
list.add("str1");
list.add("str2");
int size = list.size();
String[] arr = (String[])list.toArray(new String[size]);//使用了第二种接口,返回值和参数均为结果

时间: 2024-10-29 21:58:07

java list与数组之间的转换详细解析_java的相关文章

JAVA中list,set,数组之间的转换详解_java

JAVA的list,set,数组之间的转换,主要是使用Apache Jakarta Commons Collections,具体的方法如下:import org.apache.commons.collections.CollectionUtils;    String[] strArray = {"aaa", "bbb", "ccc"};    List strList = new ArrayList();    Set strSet = new

java中sdk与jdk的区别详细解析_java

SDK是Software Development Kit的缩写,中文意思是"软件开发工具包".这是一个覆盖面相当广泛的名词,可以这么说:辅助开发某一类软件的相关文档.范例和工具的集合都可以叫做"SDK".SDK是一系列文件的组合,它为软件的开发提供一个平台(它为软件开发使用各种API提供便利). JDK(Java Development Kit,Java开发工具包)是Sun Microsystems针对Java开发员的产品.自从Java推出以来,JDK已经成为使用最

java json和xml之间的转换问题

问题描述 java json和xml之间的转换问题 怎样把json字符串写入xml文件中呢?说说具体步骤!比如先要将json转化为其他形式或者还是什么的 解决方案 Java和JSON之间的转换Java对象和XML之间的转换json/java对象/xml之间相互转换 解决方案二: http://hanyi366.iteye.com/blog/1162365 只是两个有格式的普通文本文件,所以如果转化的话,转换成对应文件的格式就行

java中基本类型之间的转换

问题描述 java中基本类型之间的转换,笔试中常见的考题及答案,亲们,有能力的就帮忙解答下呗!(额的基础不好呀!) 解决方案 解决方案二:主要是3种,分别如下: 1.字符串和基础数据类型的互相转换 2.基础数据类型和其相对应的包装类的互相转换 3.字符串和基础数据类型的包装类的互相转换  1. (1)字符串转换成为基础数据类型 String s = "200";  int i = Integer.parseInt("s"); 或者 int si2 = new Int

使用Quick在Java对象和XML之间进行转换

近几年来,XML 的确给编程世界带来了巨大冲击.然而,XML 应用程序的复杂 性(从一开始就很复杂)在最近几年中并没有减少多少.开发人员仍要花几个星 期的时间(即使不是几个月)来学习复杂的 XML 语义和 API(如 SAX 和 DOM) 来操作 XML.然而,在过去的 6 个月到 12 个月中,相对于那些较复杂的 API, 另一种新的比较简单的 XML API(称为 Quick)已经越来越受到欢迎. 数据绑定允许您直接在 Java 对象和 XML 之间映射,而不必处理 XML 属性和 元素.另

java String[]字符串数组自动排序的简单实现_java

如下所示: import java.util.Arrays; public class xulie { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String []str = {"abc","bca","cab","cba","aaa","111&

Java线程中start和run方法全面解析_java

自定义线程两种方法 自定义一个runnable接口的实现类,然后构造一个thread,即对thread传入一个runnable接口类. new一个thread或者写个thread子类,覆盖它的run方法.(new 一个thread并覆盖run方法实际上是匿名内部类的一种方式) 示例代码 public static void main(String[] args) { new Thread(new Runnable() { @Override public void run() { System.

Javascript中字符串与字符数组之间的转换示例

1.string to array js里的string和java中的一样,都是不可变的常量. 早期的ECMAScript标准将string解析为不可变的字符数组, 支持str[index]这样的访问方式. 直到今天firefox仍然支持, 但IE不行. 我知道两种可以将字符串转换为数组的方法. 第一种很容易想到:使用charAt. Javascript代码: function toArray(str){     if(typeof str !="string"){         r

Java输出通过InetAddress获得的IP地址数组详细解析_java

使用 InetAddress 获取 IP 地址会得到一个 byte 数组如果你直接输出这个数组,你会发现 IP 地址中的某些位变成了负数比如 61.135.169.105 会输出成 61.-121.-87.105仔细看一看,会发现 135 + 121 = 256,169 + 87 = 256 -_-! 怎么个情况! 我首先想到的是 byte 类型向 int 类型转换过程中出现了问题,后来发现,实际不然 因为 Java 中没有 unsigned 类型,所以byte.short.int.long 都