|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
最后我再次声明,我并没有说不看好java,实际上我对java很乐观的,毕竟她正在不断改进中,我相信她总有一天会和.net并驾齐驱的
1.迭代器计划
迭代器是一种形式,它可使得关于序列范例的数据布局的遍历举动与被遍历的对象分别,即我们无需体贴该序列的底层布局是甚么模样的。
一样平常的迭代器对外供应的接口有:
[1]反省是不是至序列末了;
[2]前往以后的对象;
[3]过渡到下一个对象。
我们基于以上三点,供应一个迭代器Interface。
<<interface>>MyIterator.java
packagecom.zj.iterator;
publicinterfaceMyIterator<T>{
booleanend();
Tcurrent();
voidnext();
}
接上去,计划一个序列,并部署下面计划的迭代器。我们利用一个ArrayList作为底层的数据布局,计划一个外部类LinksIterator来完成MyIterator接口,如许能够供应迭代器功效。经由过程publicMyIterator<T>browser()办法前往该迭代器的实例。
Links.java
packagecom.zj.iterator;
importjava.util.ArrayList;
importjava.util.List;
publicclassLinks<T>{
privateList<T>items=newArrayList<T>();
publicvoidadd(Tx){
items.add(x);
}
privateclassLinksIteratorimplementsMyIterator<T>{
privateinti=0;
publicbooleanend(){
returni==items.size();
}
publicTcurrent(){
returnitems.get(i);
}
publicvoidnext(){
if(i<items.size())
i++;
}
}
publicMyIterator<T>browser(){
returnnewLinksIterator();
}
publicstaticvoidmain(String[]args){
Links<Integer>links=newLinks<Integer>();
for(inti=1;i<6;i++)
links.add(i);
//useMyIterator
MyIterator<Integer>myItr=links.browser();
while(!myItr.end()){
System.out.print(myItr.current()+"");
myItr.next();
}
}
}
<p>
进而能拉拢大多数程序员用windows产品。并且从ASP.NETAJAX可以跨平台这一点上,间接证明了我们的推断,至少证明了微软做过这方面的研究。所以如果哪一天突然听说了.net可以跨平台了,那么请不要吃惊,如果这一天真的到来,java就到了真正和.net决战的时刻。因为不到万不得以的时候微软是不会推出跨平台的.net的,如果跨平台的.net还不足以对抗java的话,那么微软还剩的手段就是开源了,呵呵。 |
|