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

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

 2010-05-27 00:00:00 来源:WEB开发网   
核心提示: 而且,由于很棒的 API 设计,关于 Java Collections API 您不知道的 5 件事,第 1 部分:定制和扩展 Java Collections(5),我们不必完全受限于 Collections 类中提供的算法 — 例如,我喜欢不直接修改(传入的 Collection

而且,由于很棒的 API 设计,我们不必完全受限于 Collections 类中提供的算法 — 例如,我喜欢不直接修改(传入的 Collection 的)内容的方法。所以,可以编写定制算法是一件很棒的事情,例如清单 4 就是一个这样的例子:

清单 4. ReverseIterator 使事情更简单

class MyCollections 
{ 
  public static <T> List<T> reverse(List<T> src) 
  { 
    List<T> results = new ArrayList<T>(src); 
    Collections.reverse(results); 
    return results; 
  } 
} 

5. 扩展 Collections API

以上定制算法阐释了关于 Java Collections API 的一个最终观点:它总是适合加以扩展和修改,以满足开发人员的特定目的。

例如,假设您需要 Person 类中的孩子总是按年龄排序。虽然可以编写代码一遍又一遍地对孩子排序(也许是使用 Collections.sort 方法),但是通过一个 Collection 类来自动排序要好得多。

实际上,您甚至可能不关心是否每次按固定的顺序将对象插入到 Collection 中(这正是 List 的基本原理)。您可能只是想让它们按一定的顺序排列。

java.util 中没有 Collection 类能满足这些需求,但是编写一个这样的类很简单。只需创建一个接口,用它描述 Collection 应该提供的抽象行为。对于 SortedCollection,它的作用完全是行为方面的。

清单 5. SortedCollection

public interface SortedCollection<E> extends Collection<E> 
{ 
  public Comparator<E> getComparator(); 
  public void setComparator(Comparator<E> comp); 
} 

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

Tags:关于 Java Collections

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