java迭代器Iterator用法实例



java迭代器Iterator用法实例。

Iterator
 迭代器是一个对象,可以利用next() hasNext() remove()这三种方法来遍历并选择序列中的对象。方法很灵活。next()方法是返回序列的第一个元素。即得到元素。
 
                  hasNext() 方法是检查序列中是否还有元素。
 
                  remove()方法是将迭代器返回的元素删除。
 
List list = new ArrayList();
 
list .add(“a”);
 
for(Iterator it = list .iterator(); iter.hasNext();)
 
{
 
Object obj = it.next();
 
If(“a”.equals(obj)
 
{  it.remove;  }
 
}
 
 
 
选猴王问题。、
 
100个猴子围城一圈,从第一个开始报数,当报到底14个人猴子时候,则第14个退出,依次类推,最后圈中剩下的一个就是猴王。
 
用链表 , num模拟报数,num等于14到时候节点删除,用一个计数器cnt来记录已经删除的节点,初始值为100,等于1时候即为猴王。
 
当把 100换成M ,14换成N,变成了约瑟夫环问题。
 
Public static void main(string []args)
 
{
 
    LinkedList lucky = new LinkedList();
 
   Int number,cnt;
 
 For( number = 1;number<=100;++number)
 
 Lucky.addLast(number);
 
Cnt = 100;
 
Number = 0;
 
Iterator it = lucky.iterator();
 
//循环删除退出的猴子,知道只剩下一个
 
While(cnt>1)
 
{
 
If(it .hasNext())
 
{
 
It.next(); //往后面数
 
++number;  //计数器家1;
 
}
 
else{           //迭代器已经到达末尾,重新将它置回到链接表头部。
 
it = lucky.iterator();
 
}
 
//删除应该退出圈得猴子
 
If(number==14)
 
{
 
Number =0;
 
It.remove();
 
–cnt;
 
}
 
}
 
System.out.println(“猴王为:”+lucky.element());
 
 
 
}