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

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

 2010-05-27 00:00:00 来源:WEB开发网   
核心提示: 在域建模的时候,使用 Iterable 有一些明显的缺陷,关于 Java Collections API 您不知道的 5 件事,第 1 部分:定制和扩展 Java Collections(4),因为通过 iterator() 方法只能那么 “隐晦” 地支持一个那样的对象集

在域建模的时候,使用 Iterable 有一些明显的缺陷,因为通过 iterator() 方法只能那么 “隐晦” 地支持一个那样的对象集合。但是,如果孩子集合比较明显,Iterable 可以使针对域类型的编程更容易,更直观。

4. 经典算法和定制算法

您是否曾想过以倒序遍历一个 Collection?对于这种情况,使用经典的 Java Collections 算法非常方便。

在上面的 清单 2 中,Person 的孩子是按照传入的顺序排列的;但是,现在要以相反的顺序列出他们。虽然可以编写另一个 for 循环,按相反顺序将每个对象插入到一个新的 ArrayList 中,但是 3、4 次重复这样做之后,就会觉得很麻烦。

在此情况下,清单 3 中的算法就有了用武之地:

清单 3. ReverseIterator

public class ReverseIterator 
{ 
  public static void main(String[] args) 
  { 
    Person ted = new Person("Ted", "Neward", 39, 
      new Person("Michael", "Neward", 16), 
      new Person("Matthew", "Neward", 10)); 
 
    // Make a copy of the List 
    List<Person> kids = new ArrayList<Person>(ted.getChildren()); 
    // Reverse it 
    Collections.reverse(kids); 
    // Display it 
    System.out.println(kids); 
  } 
}

Collections 类有很多这样的 “算法”,它们被实现为静态方法,以 Collections 作为参数,提供独立于实现的针对整个集合的行为。

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

Tags:关于 Java Collections

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