集合转换为数组 Collection上定义了一个方法:toArray可以将当前集合转换为一个数组
public class CollectionToArrayDemo {
public static void main(String[] args) {
Collection<String> c = new ArrayList<>();
c.add("one");
c.add("two");
c.add("three");
c.add("four");
c.add("five");
System.out.println(c);
// Object[] array = c.toArray();
/*
toArray方法传入的数组长度实际没有长度要求,就功能而言如果给定的数组长度>=
集合的size时,就是用该数组(将集合元素存入到数组中)然后将其返回。
如果指定的数组长度不足时会根据该数组类型自行创建一个与集合size一致的数组
并返回。
*/
String[] array = c.toArray(new String[c.size()]);
System.out.println(Arrays.toString(array));
}
}
数组转换为集合
数组的工具类Arrays提供了一个静态方法asList,可以将一个数组转换为一个List集合
public class ArrayToListDemo {
public static void main(String[] args) {
String[] array = {"one","two","three","four","five"};
System.out.println("array:"+ Arrays.toString(array));
List<String> list = Arrays.asList(array);
System.out.println("list:" + list);
//对该集合的操作就是对原数组对应的操作
list.set(1,"six");
System.out.println("list:" + list);
System.out.println("array:"+ Arrays.toString(array));
//会改变数组长度的操作都是不支持的,因为数组是定长的。
//会抛出异常:java.lang.UnsupportedOperationException(不支持的操作异常)
// list.add("seven");
// List<String> list2 = new ArrayList<>();
// list2.addAll(list);
/*
所有的集合都支持一个参数为Collection的构造器,作用是在创建当前集合的同时
包含给定集合中的所有元素
*/
List<String> list2 = new ArrayList<>(list);
System.out.println("list2:"+list2);
list2.add("seven");
System.out.println("list2:"+list2);
}
}