List 和Array 相互转化

一、List to Array

1.1、List 转成 Object 类型数组,但有局限性

使用List的toArray()方法,只能转成 Object[ ] ,不能强制将数组转换为其他类型(如 int[] 、String[]等),所以有局限性。

@Test
public void listToArray() {
	Object[] array = list.toArray();
	print(array);//打印
}

1.2、List 转成 String 类型数组

使用List的toArray(T[] a)方法 ,可以转成任意类型。

@Test
public void listToArray2() {
	String[] array2 = list.toArray(new String[list.size()]);
	print(array);//打印
}

二、Array to List

2.1、使用Arrays 工具类转成List

@Test
public void arrayToList() {
	List<String> list = new ArrayList<String>(Arrays.asList(array));
	System.out.println(list.toString());
}

2.2、Collections 工具类转换List

@Test
public void arrayToList2() {
	List<String> list = new ArrayList<String>(array.length);
	Collections.addAll(list, array);
	System.out.println(list.toString());
}

三、List 、Array 转成字符串,添加分隔符

@Test
public void arrayToList3() {
	// org.apache.commons.lang3.StringUtils.join(Iterable<?>, String)
	String a = StringUtils.join(list, ",");
	System.out.println(a);
	
	String b = StringUtils.join(array, ",");
	System.out.println(b);
}

依赖 apache 的commons-lang3.jar

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.3.1</version>
</dependency>

四、List 和Array 相互转化工具类

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import org.apache.commons.lang3.StringUtils;
import org.junit.Test;

public class ListToArrayUtil {

	public static List<String> list = new ArrayList<String>();
	public static String[] array = { "java", "c++", "c#", "php" };

	static {
		list.add("aaa");
		list.add("bb");
		list.add("cc");
		list.add("dd");
		list.add("ee");
	}

	/**
	 * List转换成Object类型数组
	 */
	@Test
	public void listToArray() {
		Object[] array = list.toArray();
		print(array);
	}

	/**
	 * List转换成String类型数组
	 */
	@Test
	public void listToArray2() {
		String[] array2 = list.toArray(new String[list.size()]);
		print(array2);
	}

	/**
	 * 使用Arrays 工具类转成List
	 */
	@Test
	public void arrayToList() {
		List<String> list = new ArrayList<String>(Arrays.asList(array));
		list.add("C");
		System.out.println(list.toString());
	}

	/**
	 * Collections 工具类转换List
	 */
	@Test
	public void arrayToList2() {
		List<String> list = new ArrayList<String>(array.length);
		Collections.addAll(list, array);
		list.add("C");
		System.out.println(list.toString());
	}

	/**
	 * 转成字符串,并增加分隔符
	 */
	@Test
	public void testSplit1() {
		// org.apache.commons.lang3.StringUtils.join(Iterable<?>, String)
		String a = StringUtils.join(list, ",");
		System.out.println(a);

		// org.apache.commons.lang3.StringUtils.join(Object[], String)
		String b = StringUtils.join(array, ",");
		System.out.println(b);
	}

	private static void print(Object[] array) {
		if (array == null) {
			System.out.println("array is null");
		} else if (array != null && array.length == 0) {
			System.out.println("array length is 0");
		} else {
			for (Object string : array) {
				System.out.print(string + " , ");
			}
			System.out.println("");
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值