java-集合和数组的转换

来源:互联网 发布:mac 迅雷怎么断点下载 编辑:程序博客网 时间:2024/05/01 02:49


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 = newArrayList<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);
  }
 }
}