迭代器

迭代器(iterator)可以遍历一个集合变量中的每个元素。Apex提供了Iterator接口来让开发者实现自定义的迭代器。

Iterator接口

Iterator接口定义了两个函数:

  • hasNext():返回Boolean类型,表示被遍历的集合变量中是否还有下一个元素
  • next():返回集合变量中要被遍历的下一个元素

实现Iterator接口的类中所有的函数必须是global或public的。

示例代码(摘录自官方文档):

global class CustomIterable
implements Iterator<Account>{ List<Account> accs {get; set;}
Integer i {get; set;} public CustomIterable(){
accs =
[SELECT Id, Name,
NumberOfEmployees
FROM Account
WHERE Name = 'false'];
i = 0;
} global boolean hasNext(){
if(i >= accs.size()) {
return false;
} else {
return true;
}
} global Account next(){
// 8 is an arbitrary
// constant in this example
// that represents the
// maximum size of the list.
if(i == 8){return null;}
i++;
return accs[i-1];
}
}

开发者可以使用Iterator类来实现自定义迭代器类,比如下面这段代码,就是使用了上面代码中定义的类(摘录自官方文档):

global class foo implements iterable<Account>{
global Iterator<Account> Iterator(){
return new CustomIterable();
}
}
04-16 05:53