WEB开发网
开发学院软件开发Java 关于 Java Collections API 您不知道的 5 件事,第... 阅读

关于 Java Collections API 您不知道的 5 件事,第 1 部分:定制和扩展 Java Collections

 2010-05-27 00:00:00 来源:WEB开发网   
核心提示: 清单 1. ArrayToListimportjava.util.*;publicclassArrayToList{publicstaticvoidmain(String[]args){//ThisgivesusnothinggoodSystem.out.println(args);//Conv

清单 1. ArrayToList

import java.util.*; 
 
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,传入包含要对其添加或移除元素的集合作为参数,来避免所有这些问题。

3. 用 for 循环遍历任何 Iterable

Java 5 中加入 Java 语言的最大的便利功能之一,增强的 for 循环,消除了使用 Java 集合的最后一道障碍。

上一页  1 2 3 4 5 6  下一页

Tags:关于 Java Collections

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接