Iterator
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的更多相关文章
- 设计模式(十):从电影院中认识"迭代器模式"(Iterator Pattern)
上篇博客我们从醋溜土豆丝与清炒苦瓜中认识了“模板方法模式”,那么在今天这篇博客中我们要从电影院中来认识"迭代器模式"(Iterator Pattern).“迭代器模式”顾名思义就是 ...
- 用struts2标签如何从数据库获取数据并在查询页面显示。最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变量。
最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变 ...
- [LeetCode] Flatten Nested List Iterator 压平嵌套链表迭代器
Given a nested list of integers, implement an iterator to flatten it. Each element is either an inte ...
- [LeetCode] Peeking Iterator 顶端迭代器
Given an Iterator class interface with methods: next() and hasNext(), design and implement a Peeking ...
- [LeetCode] Zigzag Iterator 之字形迭代器
Given two 1d vectors, implement an iterator to return their elements alternately. For example, given ...
- [LeetCode] Binary Search Tree Iterator 二叉搜索树迭代器
Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the ro ...
- 用vue.js学习es6(六):Iterator和for...of循环
一.Iterator (遍历器)的概念: 遍历器(Iterator)就是这样一种机制.它是一种接口,为各种不同的数据结构提供统一的访问机制.任何数据结构只 要部署Iterator接口,就可以完成遍历操 ...
- [转]使用Enumeration和Iterator遍历集合类
原文地址:http://www.cnblogs.com/xwdreamer/archive/2012/05/30/2526268.html 前言 在数据库连接池分析的代码实例中,看到其中使用Enume ...
- 14 Iterator和for...of循环
Iterator和for...of循环 首先 Iterator 是一个接口. 标准是 function makeIterator(array) { var nextIndex = 0; return ...
- JAVA中ListIterator和Iterator详解与辨析
在使用Java集 合的时候,都需要使用Iterator.但是java集合中还有一个迭代器ListIterator,在使用List.ArrayList. LinkedList和Vector的时候可以使用 ...
随机推荐
- Unity3d 查找所选的是否引用过某资源
一.使用方式: 1.选择要被查找的资源,右键->Find Reference 2.把资源拽入Res,点Find 3.输出结果见Console //代码 using UnityEngine; us ...
- hibernate xx(tableName) is not mapped
数据库中表名是:book,数据库表名不区分大小写的 之后我在hibernate 使用book, String sql="from book"; Query query=sessio ...
- Java for LintCode 颜色分类
给定一个包含红,白,蓝且长度为n的数组,将数组元素进行分类使相同颜色的元素相邻,并按照红.白.蓝的顺序进行排序. 我们可以使用整数0,1和2分别代表红,白,蓝. 解题思路: Java for Leet ...
- java 入门 第二季3
1.继承 1.java是单继承的,一个子类只有一个父类 父类,基类 子类,派生类 2.继承的好处:子类拥有父类的所有属性和方法,属性的修饰符不能是private 3.语法规则: class 子类 ex ...
- Centos 用户登录失败N次后锁定用户禁止登陆
针对linux上的用户,如果用户连续3次登录失败,就锁定该用户,几分钟后该用户再自动解锁 Linux有一个pam_tally2.so的PAM模块,来限定用户的登录失败次数,如果次数达到设置的阈值,则锁 ...
- mybatis一对多查询
18 <!-- 19 方式一:嵌套结果:使用嵌套结果映射来处理重复的联合结果的子集 20 封装联表查询的数据(去除重复的数据) 21 select * from class c, teacher ...
- pycharm远程上传文件到Linux
配置远程SFTP 1. 在PyCharm中打开SFTP配置面板,路径为Tools => Deployment => Configuration: 2. 配置Connection参数设置,填 ...
- NYOJ题目124中位数
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAssAAAJUCAIAAABsWvwaAAAgAElEQVR4nO3dPXLjuraG4TsJ5xqIYw
- 二、JavaScript语言--JS实践--商城分类导航效果
商城类导航菜单制作(以京东为例--竖向列表横向伸缩) 可以用两种方式来实现:用CSS实现和用JS实现 方法一:用CSS实现(要点:使用hover) <!DOCTYPE html PUBLIC & ...
- RST_n的问题
有一个灰常郁闷的问题... module CLK_Generater( input CLOCK_100, i ...