码迷,mamicode.com
首页 > 其他好文 > 详细

Iterator

时间:2016-06-17 06:11:07      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

 

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());

}

Iterator

标签:

原文地址:http://www.cnblogs.com/dubo-/p/5592656.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!