1、数组变集合的方法:Arrays.asList()
返回的集合,不能进行增、删操作.抛出异常:UnsportedIOperationException
思想:
通过操作集合的方式来操作数组.
2、集合变数组:Collection的toArray()方法,传一个集合对象,长度小于集合的size,则系统自动新声明一个集合.所以数组的长度最好跟集合长度一致.
增强for循环语句,需要有被遍历的目标(collection或数组).
import java.util.*;
class ArraysDemo
{
public static void main(String[] args)
{
arrayToList();
listToArray();
}
public static void arrayToList()
{
String [] str = {"abc", "def", "cf"}; //引用数据类型,将数组中的每个原始存入List.
//int[] str = {1,2,3}; //基本数据类型的数组转为List,将整个数组作为一个元素存入List,所以输出的size为1;
//List list = Arrays.asList(str);
//System.out.println(list.size());
List <String> list = Arrays.asList(str) ;
//list.add("cd"); //错误,不能增加删除,因为数组的长度是固定的.抛出异常:UnsportedIOperationException
for (Iterator it = list.iterator(); it.hasNext(); )
{
System.out.println(it.next());
}
}
public static void listToArray()
{
ArrayList <String> list = new ArrayList<String>();
list.add("aa");
list.add("bb");
list.add("cc");
String [] str = list.toArray(new String[list.size()]); //参数:数组对象的长度,如果比list的size小,JVM需要重新声明一个数组,所以长度最好跟list的size保持一致. 超过list的size,超出的元素均为null
for (String s : str)
{
System.out.println(s);
}
}
}