当前位置: 首页>>代码示例>>Java>>正文


Java Deque.iterator方法代码示例

本文整理汇总了Java中java.util.Deque.iterator方法的典型用法代码示例。如果您正苦于以下问题:Java Deque.iterator方法的具体用法?Java Deque.iterator怎么用?Java Deque.iterator使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在java.util.Deque的用法示例。


在下文中一共展示了Deque.iterator方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: setupStepReturnPredicateBreak

import java.util.Deque; //导入方法依赖的package包/类
protected void setupStepReturnPredicateBreak() {
	final IExecutionEngine seqEngine = (IExecutionEngine) engine;
	final Deque<MSEOccurrence> stack = seqEngine.getCurrentStack();
	if (stack.size() > 1) {
		final Iterator<MSEOccurrence> it = stack.iterator();
		it.next();
		addPredicateBreak(new BiPredicate<IExecutionEngine, MSEOccurrence>() {
			// The operation we want to step return
			private MSEOccurrence steppedReturn = it.next();

			@Override
			public boolean test(IExecutionEngine t, MSEOccurrence u) {
				// We finished stepping over once the mseoccurrence is not
				// there anymore
				return !seqEngine.getCurrentStack().contains(steppedReturn);
			}
		});
	}
}
 
开发者ID:eclipse,项目名称:gemoc-studio-modeldebugging,代码行数:20,代码来源:GenericSequentialModelDebugger.java

示例2: frameAdded

import java.util.Deque; //导入方法依赖的package包/类
@Override
public void frameAdded(AbstractAjpClientStreamSinkChannel addedFrame, List<AbstractAjpClientStreamSinkChannel> pendingFrames, Deque<AbstractAjpClientStreamSinkChannel> holdFrames) {
    Iterator<AbstractAjpClientStreamSinkChannel> it = holdFrames.iterator();
    while (it.hasNext()){
        AbstractAjpClientStreamSinkChannel pending = it.next();
        if(pending instanceof AjpClientRequestClientStreamSinkChannel) {
            SendFrameHeader header = ((AjpClientRequestClientStreamSinkChannel) pending).generateSendFrameHeader();
            if(header.getByteBuffer() != null) {
                pendingFrames.add(pending);
                it.remove();
            } else {
                //we clear the header, as we want to generate a new real header when the flow control window is updated
                ((AjpClientRequestClientStreamSinkChannel) pending).clearHeader();
            }
        }
    }
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:18,代码来源:AjpClientFramePriority.java

示例3: frameAdded

import java.util.Deque; //导入方法依赖的package包/类
@Override
public void frameAdded(SpdyStreamSinkChannel addedFrame, List<SpdyStreamSinkChannel> pendingFrames, Deque<SpdyStreamSinkChannel> holdFrames) {
    Iterator<SpdyStreamSinkChannel> it = holdFrames.iterator();
    while (it.hasNext()){
        SpdyStreamSinkChannel pending = it.next();
        if(pending instanceof SpdyStreamStreamSinkChannel) {
            SendFrameHeader header = ((SpdyStreamStreamSinkChannel) pending).generateSendFrameHeader();
            if(header.getByteBuffer() != null) {
                pendingFrames.add(pending);
                it.remove();
            } else {
                //we clear the header, as we want to generate a new real header when the flow control window is updated
                ((SpdyStreamStreamSinkChannel) pending).clearHeader();
            }
        }
    }
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:18,代码来源:SpdyFramePriority.java

示例4: processOperationToken

import java.util.Deque; //导入方法依赖的package包/类
private void processOperationToken(
		final Queue<Token> outputQueue,
		final Deque<Token> operationStack,
		final Token token ) {
	if ( outputQueue.isEmpty() ) {
		throw new SyntaxExpressionException(
				"Found operation before an operand." );
	}
	final Operation operation = (Operation) token.getValue();
	for ( final Iterator<Token> tokenIterator = operationStack.iterator(); tokenIterator
			.hasNext(); ) {
		final Token stackedOperationToken = tokenIterator.next();
		if ( stackedOperationToken.getType().isGrouper() ) {
			break;
		}
		if ( stackedOperationToken.getType().isOperation() ) {
			final Operation stackedOperation = (Operation) stackedOperationToken
					.getValue();
			if ( stackedOperation.getPrecedence() >= operation
					.getPrecedence()
					&& operation.getAssociativeness() == Associativeness.LEFT ) {
				tokenIterator.remove();
				outputQueue.offer( stackedOperationToken );
			}
		}
	}
	operationStack.push( token );
}
 
开发者ID:WellCosta,项目名称:MathMax,代码行数:29,代码来源:Parser.java

示例5: processGrouperTypeToken

import java.util.Deque; //导入方法依赖的package包/类
private void processGrouperTypeToken(
		final Queue<Token> outputQueue,
		final Deque<Token> operationStack,
		final Token token ) {
	final GrouperType grouperType = (GrouperType) token.getValue();
	if ( grouperType == GrouperType.LEFT_PARENTHESES ) {
		operationStack.push( token );
		return;
	}
	checkArgument( grouperType == GrouperType.RIGHT_PARENTHESES );
	boolean foundLeftParentheses = false;
	for ( final Iterator<Token> tokenIterator = operationStack.iterator(); tokenIterator
			.hasNext(); ) {
		final Token stackedOperationToken = tokenIterator.next();
		if ( isLeftParentheses( stackedOperationToken ) ) {
			foundLeftParentheses = true;
			tokenIterator.remove();
			break;
		}
		tokenIterator.remove();
		outputQueue.offer( stackedOperationToken );
	}
	if ( ! foundLeftParentheses ) {
		throw new SyntaxExpressionException(
				"Mismatched right parentheses." );
	}
}
 
开发者ID:WellCosta,项目名称:MathMax,代码行数:28,代码来源:Parser.java

示例6: clean

import java.util.Deque; //导入方法依赖的package包/类
public List<Certificate> clean(List<Certificate> chain) throws SSLPeerUnverifiedException {
    Deque<Certificate> queue = new ArrayDeque(chain);
    List<Certificate> result = new ArrayList();
    result.add(queue.removeFirst());
    boolean foundTrustedCertificate = false;
    int c = 0;
    while (c < 9) {
        X509Certificate toVerify = (X509Certificate) result.get(result.size() - 1);
        X509Certificate trustedCert = this.trustRootIndex.findByIssuerAndSignature(toVerify);
        if (trustedCert != null) {
            if (result.size() > 1 || !toVerify.equals(trustedCert)) {
                result.add(trustedCert);
            }
            if (!verifySignature(trustedCert, trustedCert)) {
                foundTrustedCertificate = true;
                c++;
            }
        } else {
            Iterator<Certificate> i = queue.iterator();
            while (i.hasNext()) {
                X509Certificate signingCert = (X509Certificate) i.next();
                if (verifySignature(toVerify, signingCert)) {
                    i.remove();
                    result.add(signingCert);
                    c++;
                }
            }
            if (!foundTrustedCertificate) {
                throw new SSLPeerUnverifiedException("Failed to find a trusted cert that " +
                        "signed " + toVerify);
            }
        }
        return result;
    }
    throw new SSLPeerUnverifiedException("Certificate chain too long: " + result);
}
 
开发者ID:JackChan1999,项目名称:boohee_v5.6,代码行数:37,代码来源:CertificateChainCleaner.java

示例7: run

import java.util.Deque; //导入方法依赖的package包/类
public void run(Deque<Integer> deq) {
    while (deq.size() > 1) {
        Iterator<Integer> it = deq.iterator();
        it.next(); it.remove();
        it = deq.descendingIterator();
        it.next(); it.remove();
    }
    System.out.println(deq);
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:10,代码来源:ChorusLine.java

示例8: getGroup

import java.util.Deque; //导入方法依赖的package包/类
private static Deque<Token> getGroup(Deque<Token> deque, EnumTokenType tokenTypeEnd, boolean tokenEndRequired) throws ParseException
{
    Deque<Token> deque1 = new ArrayDeque();
    int i = 0;
    Iterator iterator = deque1.iterator();

    while (iterator.hasNext())
    {
        Token token = (Token)iterator.next();
        iterator.remove();

        if (i == 0 && token.getType() == tokenTypeEnd)
        {
            return deque1;
        }

        deque1.add(token);

        if (token.getType() == EnumTokenType.BRACKET_OPEN)
        {
            ++i;
        }

        if (token.getType() == EnumTokenType.BRACKET_CLOSE)
        {
            --i;
        }
    }

    if (tokenEndRequired)
    {
        throw new ParseException("Missing end token: " + tokenTypeEnd);
    }
    else
    {
        return deque1;
    }
}
 
开发者ID:sudofox,项目名称:Backmemed,代码行数:39,代码来源:ExpressionParser.java

示例9: clean

import java.util.Deque; //导入方法依赖的package包/类
/**
 * Returns a cleaned chain for {@code chain}.
 *
 * <p>This method throws if the complete chain to a trusted CA certificate cannot be constructed.
 * This is unexpected unless the trust root index in this class has a different trust manager than
 * what was used to establish {@code chain}.
 */
@Override public List<Certificate> clean(List<Certificate> chain, String hostname)
    throws SSLPeerUnverifiedException {
  Deque<Certificate> queue = new ArrayDeque<>(chain);
  List<Certificate> result = new ArrayList<>();
  result.add(queue.removeFirst());
  boolean foundTrustedCertificate = false;

  followIssuerChain:
  for (int c = 0; c < MAX_SIGNERS; c++) {
    X509Certificate toVerify = (X509Certificate) result.get(result.size() - 1);

    // If this cert has been signed by a trusted cert, use that. Add the trusted certificate to
    // the end of the chain unless it's already present. (That would happen if the first
    // certificate in the chain is itself a self-signed and trusted CA certificate.)
    X509Certificate trustedCert = trustRootIndex.findByIssuerAndSignature(toVerify);
    if (trustedCert != null) {
      if (result.size() > 1 || !toVerify.equals(trustedCert)) {
        result.add(trustedCert);
      }
      if (verifySignature(trustedCert, trustedCert)) {
        return result; // The self-signed cert is a root CA. We're done.
      }
      foundTrustedCertificate = true;
      continue;
    }

    // Search for the certificate in the chain that signed this certificate. This is typically
    // the next element in the chain, but it could be any element.
    for (Iterator<Certificate> i = queue.iterator(); i.hasNext(); ) {
      X509Certificate signingCert = (X509Certificate) i.next();
      if (verifySignature(toVerify, signingCert)) {
        i.remove();
        result.add(signingCert);
        continue followIssuerChain;
      }
    }

    // We've reached the end of the chain. If any cert in the chain is trusted, we're done.
    if (foundTrustedCertificate) {
      return result;
    }

    // The last link isn't trusted. Fail.
    throw new SSLPeerUnverifiedException(
        "Failed to find a trusted cert that signed " + toVerify);
  }

  throw new SSLPeerUnverifiedException("Certificate chain too long: " + result);
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:57,代码来源:BasicCertificateChainCleaner.java

示例10: enqueueChildren

import java.util.Deque; //导入方法依赖的package包/类
private static void enqueueChildren(final Node node, final Class<?> nodeClass, final List<Field> children) {
    final Deque<Class<?>> stack = new ArrayDeque<>();

    /**
     * Here is some ugliness that can be overcome by proper ChildNode annotations
     * with proper orders. Right now we basically sort all classes up to Node
     * with super class first, as this often is the natural order, e.g. base
     * before index for an IndexNode.
     *
     * Also there are special cases as this is not true for UnaryNodes(lhs) and
     * BinaryNodes extends UnaryNode (with lhs), and TernaryNodes.
     *
     * TODO - generalize traversal with an order built on annotations and this
     * will go away.
     */
    Class<?> clazz = nodeClass;
    do {
        stack.push(clazz);
        clazz = clazz.getSuperclass();
    } while (clazz != null);

    if (node instanceof TernaryNode) {
        // HACK juggle "third"
        stack.push(stack.removeLast());
    }
    // HACK change operator order for BinaryNodes to get lhs first.
    final Iterator<Class<?>> iter = node instanceof BinaryNode ? stack.descendingIterator() : stack.iterator();

    while (iter.hasNext()) {
        final Class<?> c = iter.next();
        for (final Field f : c.getDeclaredFields()) {
            try {
                f.setAccessible(true);
                final Object child = f.get(node);
                if (child == null) {
                    continue;
                }

                if (child instanceof Node) {
                    children.add(f);
                } else if (child instanceof Collection) {
                    if (!((Collection<?>)child).isEmpty()) {
                        children.add(f);
                    }
                }
            } catch (final IllegalArgumentException | IllegalAccessException e) {
                return;
            }
        }
    }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:52,代码来源:ASTWriter.java

示例11: enqueueChildren

import java.util.Deque; //导入方法依赖的package包/类
private static void enqueueChildren(final Node node, final Class<?> nodeClass, final List<Field> children) {
    final Deque<Class<?>> stack = new ArrayDeque<>();

    /**
     * Here is some ugliness that can be overcome by proper ChildNode annotations
     * with proper orders. Right now we basically sort all classes up to Node
     * with super class first, as this often is the natural order, e.g. base
     * before index for an IndexNode.
     *
     * Also there are special cases as this is not true for UnaryNodes(lhs) and
     * BinaryNodes extends UnaryNode (with lhs), and TernaryNodes.
     *
     * TODO - generalize traversal with an order built on annotations and this
     * will go away.
     */
    Class<?> clazz = nodeClass;
    do {
        stack.push(clazz);
        clazz = clazz.getSuperclass();
    } while (clazz != null);

    if (node instanceof TernaryNode) {
        // HACK juggle "third"
        stack.push(stack.removeLast());
    }
    // HACK change operator order for BinaryNodes to get lhs first.
    final Iterator<Class<?>> iter = node instanceof BinaryNode ? stack.descendingIterator() : stack.iterator();

    while (iter.hasNext()) {
        final Class<?> c = iter.next();
        for (final Field f : accessibleFields.get(c)) {
            try {
                final Object child = f.get(node);
                if (child == null) {
                    continue;
                }

                if (child instanceof Node) {
                    children.add(f);
                } else if (child instanceof Collection) {
                    if (!((Collection<?>)child).isEmpty()) {
                        children.add(f);
                    }
                }
            } catch (final IllegalArgumentException | IllegalAccessException e) {
                return;
            }
        }
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:51,代码来源:ASTWriter.java


注:本文中的java.util.Deque.iterator方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。