数组集合转换

package com.demo;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class Demo {

	public static void main(String[] args) {
		ArrayList<String> list = new ArrayList<>();
		list.add("a");
		list.add("b");
		list.add("c");
		list.add("d");
		/**
		 * 在转化为其它类型的数组时需要强制类型转换,并且,要使用带参数的toArray方法,参数为对象数组,
		 * 将list中的内容放入参数数组中,当参数数组的长度小于list的元素个数时,会自动扩充数组的长度以适应list的长度
		 */
		String[] array1 = (String[]) list.toArray(new String[0]);
		System.out.println("从list转换成的字符串数组长度为:" + array1.length);

		String[] array2 = (String[]) list.toArray(new String[] {});
		System.out.println("从list转换成的字符串数组长度为:" + array2.length);

		String[] array3 = (String[]) list.toArray(new String[list.size()]);
		System.out.println("从list转换成的字符串数组长度为:" + array3.length);

		/**
		 * 将数组转换成list
		 */
		ArrayList<String> tempList1 = new ArrayList<>();

		for (int i = 0; i < array1.length; i++) {
			tempList1.add(array1[i]);
		}
		System.out.println("将数组转换成list的元素个数为:" + tempList1.size());

		/**数组转集合。。直接使用Arrays的asList方法*/
		ArrayList<String> tempList2 = new ArrayList<>(Arrays.asList(array1));
		System.out.println("将数组转换成list的元素个数为:" + tempList2.size());

		
		ArrayList<String> tempList3 = new ArrayList<>();
		tempList3.addAll(Arrays.asList(array1));
		System.out.println("将数组转换成list的元素个数为:" + tempList3.size());
		/**********************************************
		 *  将set转换为数组
		 */
		Set<String> set = new HashSet<>();
		set.add("a");
		set.add("b");
		array1 = (String[]) set.toArray(new String[0]);
		array2 = (String[]) set.toArray(new String[] {});
		array3 = (String[]) set.toArray(new String[set.size()]);
		System.out.println("从Set转换成的对象数组长度为:" + array1.length);
		System.out.println("从Set转换成的字符串数组长度为:" + array2.length);
		System.out.println("从Set转换成的字符串数组长度为:" + array3.length);
		/**
		 * 数组转换成Set 
		 * 将数组转换成List后,再用List构造Set
		 */
		Set<String> tempSet1 = new HashSet<>(Arrays.asList(array1));
		System.out.println("将数组转换成Set的元素个数为:" + tempSet1.size());
		// 将Set清空,然后把数组转换成的list全部add
		
		Set<String> tempSet2 = new HashSet<>();
		tempSet2.addAll(Arrays.asList(array1));
		System.out.println("将数组转换成Set的元素个数为:" + tempSet2.size());
	}
}


从list转换成的字符串数组长度为:4
从list转换成的字符串数组长度为:4
从list转换成的字符串数组长度为:4
将数组转换成list的元素个数为:4
将数组转换成list的元素个数为:4
将数组转换成list的元素个数为:4
从Set转换成的对象数组长度为:2
从Set转换成的字符串数组长度为:2
从Set转换成的字符串数组长度为:2
将数组转换成Set的元素个数为:2
将数组转换成Set的元素个数为:2



你可能感兴趣的:(数组集合转换)