⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 leafiterator.java

📁 本书透彻讲解了经典的《设计模式:可复用面向对象软件的基础》一书涵盖的23种基本设计模式。本书将这些设计模式分成五类:接口型模式、责任型模式、构造型模式、操作型模式
💻 JAVA
字号:
package com.oozinoz.util;

import java.util.*;

/*
 * Copyright (c) 2001 Steven J. Metsker.
 * 
 * Steve Metsker makes no representations or warranties about
 * the fitness of this software for any particular purpose, 
 * including the implied warranty of merchantability.
 *
 * Please use this software as you wish with the sole
 * restriction that you may not claim that you wrote it.
 */
/**
 * Iterate over a leaf, returning it just once.
 *
 * @author Steven J. Metsker
 *
 */
public class LeafIterator extends ComponentIterator 
{





/**
 * Create an iterator over a childless node in a composite.
 *
 * @param node the childless node
 * @param visited a set to track visited nodes
 */
public LeafIterator(Object node, Set visited)
{
	super(node, visited);
}

/**
 * Return zero, as the depth of iterators below a leaf is
 * always zero.
 *
 * @return zero, as the depth of iterators below a leaf is
 *         always zero
 */
public int depth()
{
	return 0;
}

/**
 * Return true if we haven't actually returned our node
 * yet.
 *
 * @return true if we haven't actually returned our 
 *         node yet.
 */
public boolean hasNext()
{
	return !visited.contains(node);
}

/**
 * Return this node if we haven't returned it previously;
 * otherwise return null.
 *
 * @return this node if we haven't returned it previously;
 *         otherwise return null.
 */
public Object next()
{
	if (visited.contains(node))
	{
		return null;
	}
	visited.add(node);
	return node;
}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -