java.util.Stack#iterator ( )源码实例Demo

下面列出了java.util.Stack#iterator ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: DevUtils   文件: ActivityUtils.java
/**
 * 结束所有 Activity
 * @return {@link ActivityUtils}
 */
public ActivityUtils finishAllActivity() {
    synchronized (mActivityStacks) {
        // 保存新的堆栈, 防止出现同步问题
        Stack<Activity> stack = new Stack<>();
        stack.addAll(mActivityStacks);
        // 清空全部, 便于后续操作处理
        mActivityStacks.clear();
        // 进行遍历移除
        Iterator<Activity> iterator = stack.iterator();
        while (iterator.hasNext()) {
            Activity activity = iterator.next();
            if (activity != null && !activity.isFinishing()) {
                activity.finish();
                // 删除对应的 Item
                iterator.remove();
            }
        }
        // 移除数据, 并且清空内存
        stack.clear();
        stack = null;
    }
    return this;
}
 
源代码2 项目: CQL   文件: ShortestPath.java
public List<E> pathTo(N v) {
	if (!hasPathTo(v)) {
		return null;
	}
	Stack<E> path = new Stack<>();
	for (DirectedEdge<N, E> e = edgeTo.get(v); e != null; e = edgeTo.get(e.from)) {
		path.push(e.e);
	}
	Iterator<E> it = path.iterator();
	List<E> ret = new LinkedList<>();
	while (it.hasNext()) {
		ret.add(it.next());
	}
	return Util.reverse(ret); // TODO aql apparently this is backwards
}
 
源代码3 项目: SoloPi   文件: LauncherApplication.java
/**
 * 清理无用Context
 * @param stack
 */
public void clearDestroyedContext(Stack<ContextInstanceWrapper> stack) {
   ReentrantReadWriteLock.WriteLock writeLock = null;

    // 查找对应锁
    if (stack == openedActivity) {
        writeLock = ACTIVITY_STACK_LOCK.writeLock();
    } else if (stack == openedService) {
        // 不修改,加读锁
        writeLock = SERVICE_STACK_LOCK.writeLock();
    }

    if (writeLock != null) {
        writeLock.lock();
    }
    // 清理掉Destroy的Context
    Iterator<ContextInstanceWrapper> iterator = stack.iterator();
    while (iterator.hasNext()) {
        ContextInstanceWrapper item = iterator.next();
        if (!item.checkValid()) {
            iterator.remove();
        }
    }

    if (writeLock != null) {
        writeLock.unlock();
    }
}
 
源代码4 项目: DevUtils   文件: ActivityUtils.java
/**
 * 检测是否包含指定的 Activity
 * @param clazzs Class(Activity)[]
 * @return {@code true} yes, {@code false} no
 */
public boolean existActivitys(final Class<?>... clazzs) {
    if (clazzs != null && clazzs.length != 0) {
        synchronized (mActivityStacks) {
            // 保存新的堆栈, 防止出现同步问题
            Stack<Activity> stack = new Stack<>();
            stack.addAll(mActivityStacks);
            try {
                // 进行遍历判断
                Iterator<Activity> iterator = stack.iterator();
                while (iterator.hasNext()) {
                    Activity activity = iterator.next();
                    if (activity != null && !activity.isFinishing()) {
                        for (int i = 0, len = clazzs.length; i < len; i++) {
                            if (clazzs[i] != null && activity.getClass().getName().equals(clazzs[i].getName())) {
                                return true;
                            }
                        }
                    }
                }
            } finally {
                // 移除数据, 并且清空内存
                stack.clear();
                stack = null;
            }
        }
    }
    return false;
}
 
源代码5 项目: DevUtils   文件: ActivityUtils.java
/**
 * 关闭指定类名 Activity
 * @param clazz Activity.class
 * @return {@link ActivityUtils}
 */
public ActivityUtils finishActivity(final Class<?> clazz) {
    if (clazz != null) {
        synchronized (mActivityStacks) {
            // 保存新的堆栈, 防止出现同步问题
            Stack<Activity> stack = new Stack<>();
            stack.addAll(mActivityStacks);
            // 清空全部, 便于后续操作处理
            mActivityStacks.clear();
            // 进行遍历移除
            Iterator<Activity> iterator = stack.iterator();
            while (iterator.hasNext()) {
                Activity activity = iterator.next();
                // 判断是否想要关闭的 Activity
                if (activity != null) {
                    if (activity.getClass() == clazz) {
                        // 如果 Activity 没有 finish 则进行 finish
                        if (!activity.isFinishing()) {
                            activity.finish();
                        }
                        // 删除对应的 Item
                        iterator.remove();
                    }
                } else {
                    // 删除对应的 Item
                    iterator.remove();
                }
            }
            // 把不符合条件的保存回去
            mActivityStacks.addAll(stack);
            // 移除数据, 并且清空内存
            stack.clear();
            stack = null;
        }
    }
    return this;
}
 
源代码6 项目: DevUtils   文件: ActivityUtils.java
/**
 * 结束全部 Activity 除忽略的 Activity 外
 * @param clazz Activity.class
 * @return {@link ActivityUtils}
 */
public ActivityUtils finishAllActivityToIgnore(final Class<?> clazz) {
    if (clazz != null) {
        synchronized (mActivityStacks) {
            // 保存新的堆栈, 防止出现同步问题
            Stack<Activity> stack = new Stack<>();
            stack.addAll(mActivityStacks);
            // 清空全部, 便于后续操作处理
            mActivityStacks.clear();
            // 进行遍历移除
            Iterator<Activity> iterator = stack.iterator();
            while (iterator.hasNext()) {
                Activity activity = iterator.next();
                // 判断是否想要关闭的 Activity
                if (activity != null) {
                    if (!(activity.getClass() == clazz)) {
                        // 如果 Activity 没有 finish 则进行 finish
                        if (!activity.isFinishing()) {
                            activity.finish();
                        }
                        // 删除对应的 Item
                        iterator.remove();
                    }
                } else {
                    // 删除对应的 Item
                    iterator.remove();
                }
            }
            // 把不符合条件的保存回去
            mActivityStacks.addAll(stack);
            // 移除数据, 并且清空内存
            stack.clear();
            stack = null;
        }
    }
    return this;
}
 
源代码7 项目: ShootOFF   文件: RandomShoot.java
private void saySubtargets() {
	final List<File> soundFiles = new ArrayList<>();
	soundFiles.add(new File("sounds/voice/shootoff-shoot.wav"));

	final Stack<Integer> temp = new Stack<>();
	temp.addAll(currentSubtargets);
	Collections.reverse(temp);
	final Iterator<Integer> it = temp.iterator();

	while (it.hasNext()) {
		final Integer index = it.next();

		if (!it.hasNext() && currentSubtargets.size() > 1)
			soundFiles.add(new File("sounds/voice/shootoff-and.wav"));

		final File targetNameSound = new File(String.format("sounds/voice/shootoff-%s.wav", subtargets.get(index)));

		if (targetNameSound.exists()) {
			soundFiles.add(targetNameSound);
		} else {
			// We don't have a voice actor sounds file for a target
			// subregion, fall back
			// to TTS
			saySubtargetsTTS();
			return;
		}
	}

	super.playSounds(soundFiles);
}
 
源代码8 项目: algorithms-nutshell-2ed   文件: StagedDeepening.java
/**
 * Helper routine to copy stacks which need to be maintained for linking
 * in solutions.
 * 
 * @param existing    stack to be copied.
 */
private static Stack<IMove> stackCopy(Stack<IMove> existing) {
	Stack<IMove> aCopy = new Stack<IMove>();
	for (Iterator<IMove> it = existing.iterator(); it.hasNext(); ) {
		aCopy.push(it.next());
	}

	return aCopy;
}
 
源代码9 项目: algorithms-nutshell-2ed   文件: StagedDeepening.java
/**
 * Helper routine to copy stacks which need to be maintained for linking
 * in solutions.
 * 
 * @param existing    stack to be copied.
 */
private static Stack<IMove> stackCopy(Stack<IMove> existing) {
	Stack<IMove> aCopy = new Stack<IMove>();
	for (Iterator<IMove> it = existing.iterator(); it.hasNext(); ) {
		aCopy.push(it.next());
	}

	return aCopy;
}
 
源代码10 项目: DevUtils   文件: ActivityUtils.java
/**
 * 结束多个类名 Activity
 * @param clazzs Class(Activity)[]
 * @return {@link ActivityUtils}
 */
public ActivityUtils finishActivity(final Class<?>... clazzs) {
    if (clazzs != null && clazzs.length != 0) {
        synchronized (mActivityStacks) {
            // 保存新的堆栈, 防止出现同步问题
            Stack<Activity> stack = new Stack<>();
            stack.addAll(mActivityStacks);
            // 清空全部, 便于后续操作处理
            mActivityStacks.clear();
            // 判断是否销毁
            boolean isRemove;
            // 进行遍历移除
            Iterator<Activity> iterator = stack.iterator();
            while (iterator.hasNext()) {
                Activity activity = iterator.next();
                // 判断是否想要关闭的 Activity
                if (activity != null) {
                    // 默认不需要销毁
                    isRemove = false;
                    // 循环判断
                    for (int i = 0, len = clazzs.length; i < len; i++) {
                        // 判断是否相同
                        if (activity.getClass() == clazzs[i]) {
                            isRemove = true;
                            break;
                        }
                    }
                    // 判断是否销毁
                    if (isRemove) {
                        // 如果 Activity 没有 finish 则进行 finish
                        if (!activity.isFinishing()) {
                            activity.finish();
                        }
                        // 删除对应的 Item
                        iterator.remove();
                    }
                } else {
                    // 删除对应的 Item
                    iterator.remove();
                }
            }
            // 把不符合条件的保存回去
            mActivityStacks.addAll(stack);
            // 移除数据, 并且清空内存
            stack.clear();
            stack = null;
        }
    }
    return this;
}
 
源代码11 项目: DevUtils   文件: ActivityUtils.java
/**
 * 结束全部 Activity 除忽略的 Activity 外
 * @param clazzs Class(Activity)[]
 * @return {@link ActivityUtils}
 */
public ActivityUtils finishAllActivityToIgnore(final Class<?>... clazzs) {
    if (clazzs != null && clazzs.length != 0) {
        synchronized (mActivityStacks) {
            // 保存新的堆栈, 防止出现同步问题
            Stack<Activity> stack = new Stack<>();
            stack.addAll(mActivityStacks);
            // 清空全部, 便于后续操作处理
            mActivityStacks.clear();
            // 判断是否销毁
            boolean isRemove;
            // 进行遍历移除
            Iterator<Activity> iterator = stack.iterator();
            while (iterator.hasNext()) {
                Activity activity = iterator.next();
                // 判断是否想要关闭的 Activity
                if (activity != null) {
                    // 默认需要销毁
                    isRemove = true;
                    // 循环判断
                    for (int i = 0, len = clazzs.length; i < len; i++) {
                        // 判断是否相同
                        if (activity.getClass() == clazzs[i]) {
                            isRemove = false;
                            break;
                        }
                    }
                    // 判断是否销毁
                    if (isRemove) {
                        // 如果 Activity 没有 finish 则进行 finish
                        if (!activity.isFinishing()) {
                            activity.finish();
                        }
                        // 删除对应的 Item
                        iterator.remove();
                    }
                } else {
                    // 删除对应的 Item
                    iterator.remove();
                }
            }
            // 把不符合条件的保存回去
            mActivityStacks.addAll(stack);
            // 移除数据, 并且清空内存
            stack.clear();
            stack = null;
        }
    }
    return this;
}