public class ArrayToList { public static void main(String[] args) { // This gives us nothing good System.out.println(args);
// Convert args to a List of String List<String> argList = Arrays.asList(args);
// Print them out System.out.println(argList); } }注意,返回的 List 是不可修改的,所以如果尝试向其中添加新元素将抛出一个 UnsupportedOperationException。而且,由于 Arrays.asList() 使用 varargs 参数表示添加到 List 的元素,所以还可以使用它轻松地用以 new 新建的对象创建 List 。2. 迭代的效率较低将一个集合(特别是由数组转化而成的集合)的内容转移到另一个集合,或者从一个较大对象集合中移除一个较小对象集合,这些事情 并不鲜见。您也许很想对集合进行迭代,然后添加元素或移除找到的元素,但是不要这样做。在此情况下,迭代有很大的缺点:每次添加或移除元素后重新调整集合将非常低效。每次在获取锁、执行操作和释放锁的过程中,都存在潜在的并发困境。当添加或移除元素时,存取集合的其他线程会引起竞争条件。可以通过使用 addAll 或 removeAll,传入包含要对其添加或移除元素的集合作为参数,来避免所有这些问题。