今天在写一段多线程的程序时候遇到一个参数转换的问题,即要把一个ArrayList对象转换为一个String数组, 找到一个不错的方法:

ArrayList有一个toArray()的方法可以完成我们的需求,请看下面的例子

   
   
   
   
  1. List list = new ArrayList(); 
  2.   
  3. list.add("India"); 
  4. list.add("Switzerland"); 
  5. list.add("Italy"); 
  6. list.add("France"); 
  7.   
  8. String [] countries = list.toArray(new String[list.size()]); 
如果考虑到泛型的话,可以用下面的代码将任何类型的ArrayList转换成数组
 
   
   
   
   
  1. List list = new ArrayList(); 
  2.   
  3. T [] countries = list.toArray(new T[list.size()]); 

下面我们再看看怎么样把数组对象转换为ArrayList,

   
   
   
   
  1. import java.util.ArrayList; 
  2. import java.util.List; 
  3. import java.util.Arrays; 
  4.   
  5. ... 
  6.   
  7. String[] countries = {"India""Switzerland""Italy""France"}; 
  8. List list = new Arrays(Arrays.asList(countries)); 
  9. System.out.println("ArrayList of Countries:" + list); 

参考:http://viralpatel.net/blogs/2009/06/convert-arraylist-to-arrays-in-java.html