开发中不免碰到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对象或数组对象了吧!
分享到:
相关推荐
ArrayList和数组都是常见的数据存储方式,两者之间可以方便地进行转换。以下详细介绍ArrayList与数组的相互转换方法。 首先,我们将讨论如何将ArrayList转换为数组。ArrayList继承自Java的List接口,提供了toArray...
总之,Java提供了便捷的方法来处理ArrayList和数组之间的转换,使得在不同数据结构之间切换变得简单。理解并熟练掌握这些转换方法,对于提升Java编程效率和代码质量至关重要。在编写代码时,根据实际需求选择合适的...
这里我们将详细探讨如何将集合(以ArrayList为例)与数组进行互相转换,并理解其中的关键点。 首先,集合(List)是Java集合框架的一部分,提供了动态增长的能力,可以方便地添加、删除元素。而数组则是固定大小的...
JSON主要有两种基本结构:对象(Object)和数组(Array)。对象以花括号({})包裹,由键值对组成,键(key)是字符串,值(value)可以是多种类型,包括数字、字符串、数组或另一个JSON对象。数组则以方括号([])...
在Java编程语言中,数据类型转换是至关重要的概念,它涉及到不同类型的变量之间的相互转化。Java分为两大类数据类型:基本数据类型(如int、char、float等)和引用数据类型(如类、接口和数组)。本文将深入探讨Java...
了解这些转换方法后,开发者可以根据具体需求灵活地在list、set、map和数组之间进行转换,提高代码的灵活性和效率。然而,需要注意的是,不同数据结构间的转换可能会改变原有的顺序,比如List转Set时会丢失原有顺序...
例如,给定一个ArrayList `list`,我们可以使用`toArray()`方法将其转换为数组: ```java List<String> list = new ArrayList(); list.add("a"); list.add("b"); // 将List转换为Object数组 Object[] array = list...
Java集合(Collection)和数组(Array)是Java语言中两种常用的数据存储结构,它们之间存在着一定的区别和联系。本文将主要介绍Java集合与数组的区别简介及相互转换实例,以便读者更好地理解和应用它们。 一、数组...
在Java编程中,List和数组是两种常见的数据结构,它们各有特点,但有时我们需要在两者之间进行转换。本文将详细讨论如何在Java中进行List与数组之间的转换,并分析转换过程中可能出现的问题及解决方案。 首先,让...
在C#编程中,我们经常会遇到需要在列表(List)和数组(Array)之间进行数据转换的情况。List是.NET框架中常用的一种动态数组,而string[]则是字符串类型的静态数组。这两种数据结构各有特点,适用于不同的场景。下面...
在Java编程中,List和数组是两种常见的数据结构,它们各有特点,但在实际开发中经常需要进行相互转换。本篇文章将详细介绍如何在Java中实现List与数组之间的转换。 1. 数组转换为List Java中,可以使用`Arrays`类...
JSON是一种基于键值对的数据表示方式,它由对象(对象是一组键值对,用花括号{}包围)和数组(数组是一组有序的值,用方括号[]包围)构成。值可以是字符串、数字、布尔值、null、数组或者嵌套的对象。 在Java中,...
5. **复杂类型的处理**:Gson可以处理嵌套的对象和数组,以及日期、枚举等复杂类型。 6. **字段忽略**:通过`@Expose`注解,可以选择哪些字段参与序列化和反序列化,不希望暴露的字段可以被忽略。 7. **流式API**:...
`jsonUtil.txt` 文件可能是一个包含了`json-lib`使用示例或者实用工具函数的文本文件,它可能包含如何创建JSON对象、如何将Java对象转换为JSON以及如何处理复杂数据结构(如嵌套对象和数组)的代码片段。在实际项目...
在Java编程中,集合(Collections)和数组(Arrays)是两种常见的数据结构,它们各有特点,但在实际开发中,我们经常需要在两者之间进行转换。本文将详细介绍如何在Java中将List转换为Array,以及Array转换为List。 ...
6. **集合和数组的支持**:Fastjson不仅支持基本类型的转换,还能够处理复杂的集合和数组。例如,可以方便地将JSONArray转换为ArrayList,或将JSON数组直接映射为Java数组。 7. **JSONPath支持**:类似于XPath用于...
4. **集合和数组的支持**:`json-lib`可以处理Java的ArrayList、LinkedList、HashSet、TreeSet等集合,以及基本类型的数组,将其转化为JSON数组或对象。 5. **XML与JSON的互换**:`json-lib`还提供了XML与JSON之间...
1. 几种集合间相互转换以及类集与对象数组之间的转换 * 每种集合类中都提供它独有的 API 函数,在程序中使用正确集合类可以提高开发的效率 2. 集合的输出 * 使用迭代器(Iterator 接口)将集合对象实例转换成 ...
2. **JSON对象和数组**:`json-lib`提供了解析和生成JSON对象(JSON Object)和数组(JSON Array)的能力,这些对象可以映射为Java的HashMap和ArrayList。 3. **类型转换**:库支持将Java对象如Date、Number、...
集合和数组之间可以相互转换: - **集合转换为数组**:可以通过`Collection`接口的`toArray()`方法将集合转换为数组。如果希望转换后的数组类型特定,则可以传递一个数组作为参数,`toArray()`方法会返回相同类型的...