java.util.Queue#add ( )源码实例Demo

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

源代码1 项目: gemfirexd-oss   文件: DataGeneratorBB.java
public static Queue<Map<String, Object>> getRowsFromBB(String fullTableName) {
  final Queue<Map<String, Object>> tableRowsQueue = new LinkedBlockingQueue<Map<String, Object>>();
  String key = TABLE_ROW_QUEUE_PREFIX + fullTableName.toUpperCase();
  bbInstance.getSharedLock().lock();
  Queue<Map<String, Object>> allRowsQueue = (Queue<Map<String, Object>>)bbInstance
      .getSharedMap().get(key);
  int queueSize = allRowsQueue.size();
  if (queueSize < 500) {
    setRowsLowThresholdReached(fullTableName, true);
  }
  int rowsToReturn = queueSize > 100 ? 100 : queueSize;    
  for (int i = 0; i < rowsToReturn; i++) {
    tableRowsQueue.add(allRowsQueue.poll());
  }
  bbInstance.getSharedMap().put(key, allRowsQueue);
  bbInstance.getSharedLock().unlock();
  return tableRowsQueue;
}
 
源代码2 项目: codekata   文件: Solution.java
public List<Double> averageOfLevels(TreeNode root) {
    ArrayList<Double> result = new ArrayList<>();
    Queue<TreeNode> queue = new LinkedList<>();
    queue.add(root);
    while (!queue.isEmpty()) {
        int size = queue.size();
        double sum = 0;
        for (int i = 0; i < size; i++) {
            TreeNode tmp = queue.poll();
            sum += (double) tmp.val;
            if (tmp.left != null) queue.add(tmp.left);
            if (tmp.right != null) queue.add(tmp.right);
        }
        result.add(sum / size);
    }
    return result;
}
 
源代码3 项目: Project   文件: LeetCode226.java
public TreeNode invertTree2(TreeNode root) {
    if (root == null) {
        return null;
    }
    // 使用一个队列存放左右孩子还没有交换的结点
    Queue<TreeNode> queue = new LinkedList<>();
    queue.add(root);

    while (!queue.isEmpty()) {
        // 取出当前队列中节点,然后交换其左右结点
        TreeNode currentNode = queue.poll();
        TreeNode tempNode = currentNode.left;
        currentNode.left = currentNode.right;
        currentNode.right = tempNode;

        // 如果当前结点的左右结点不空,将其压入队列中
        if (currentNode.left != null) {
            queue.add(currentNode.left);
        }
        if (currentNode.right != null) {
            queue.add(currentNode.right);
        }
    }
    return root;
}
 
源代码4 项目: openhab-core   文件: SafeCallManagerImpl.java
@Override
public void enqueue(Invocation invocation) {
    synchronized (queues) {
        Queue<Invocation> queue = queues.get(invocation.getIdentifier());
        if (queue == null) {
            queue = new LinkedList<>();
            queues.put(invocation.getIdentifier(), queue);
        }
        queue.add(invocation);
    }
    trigger(invocation.getIdentifier());
}
 
源代码5 项目: flink   文件: CoBroadcastWithKeyedOperatorTest.java
@Test
public void testSideOutput() throws Exception {
	try (
			TwoInputStreamOperatorTestHarness<String, Integer, String> testHarness = getInitializedTestHarness(
					BasicTypeInfo.STRING_TYPE_INFO,
					new IdentityKeySelector<>(),
					new FunctionWithSideOutput())
	) {

		testHarness.processWatermark1(new Watermark(10L));
		testHarness.processWatermark2(new Watermark(10L));
		testHarness.processElement2(new StreamRecord<>(5, 12L));

		testHarness.processWatermark1(new Watermark(40L));
		testHarness.processWatermark2(new Watermark(40L));
		testHarness.processElement1(new StreamRecord<>("6", 13L));
		testHarness.processElement1(new StreamRecord<>("6", 15L));

		testHarness.processWatermark1(new Watermark(50L));
		testHarness.processWatermark2(new Watermark(50L));

		Queue<StreamRecord<String>> expectedBr = new ConcurrentLinkedQueue<>();
		expectedBr.add(new StreamRecord<>("BR:5 WM:10 TS:12", 12L));

		Queue<StreamRecord<String>> expectedNonBr = new ConcurrentLinkedQueue<>();
		expectedNonBr.add(new StreamRecord<>("NON-BR:6 WM:40 TS:13", 13L));
		expectedNonBr.add(new StreamRecord<>("NON-BR:6 WM:40 TS:15", 15L));

		TestHarnessUtil.assertOutputEquals(
				"Wrong Side Output",
				expectedBr,
				testHarness.getSideOutput(FunctionWithSideOutput.BROADCAST_TAG));

		TestHarnessUtil.assertOutputEquals(
				"Wrong Side Output",
				expectedNonBr,
				testHarness.getSideOutput(FunctionWithSideOutput.NON_BROADCAST_TAG));
	}
}
 
源代码6 项目: tascalate-javaflow   文件: ClassHierarchy.java
int flattenHierarchy(Queue<TypeInfo> superclasses, 
                     SortedSet<InterfaceEntry> interfaces,
                     Set<String> ivisited,
                     int depth) throws IOException {
    
    int strength = initialStrength();
    if (!isInterface) {
        superclasses.add(this);
    }
    // Process superclass
    TypeInfo stype = superClass();
    if (null != stype) {
        stype.flattenHierarchy(superclasses, interfaces, ivisited, depth + 1);                 
    }
    // Process interfaces;
    TypeInfo[] itypes = interfaces();
    int size = itypes.length;
    for (int i = size - 1; i >= 0; i--) {
        TypeInfo itype = itypes[i];
        // From bottom to top, so append children
        strength += itype.flattenHierarchy(null, interfaces, ivisited, depth + 1);
    }
    
    if (isInterface) {
        if (!ivisited.contains(name)) {
            // skip if re-implemented on higher level
            // and first appears on lower (base) level
            interfaces.add(new InterfaceEntry(this, strength, depth));
            ivisited.add(name);
        }
        return strength;
    } else {
        return 0;
    }
}
 
源代码7 项目: beakerx   文件: TreeMapReducer.java
private void createNextTreeLayer(TreeLayer treeLayer, Queue<TreeLayer> treeLayers) {
  TreeLayer newTreeLayer = createTreeLayer(treeLayer.getNodeLayers());
  if (!newTreeLayer.getNodeLayers().isEmpty()) {
    treeLayers.add(newTreeLayer);
    createNextTreeLayer(newTreeLayer, treeLayers);
  }
}
 
源代码8 项目: gadtry   文件: SearchBuilder.java
/**
 * 广度优先 Breadth first
 */
private static <E, R> void searchByBreadthFirst(
        Deque<Route<E, R>> routes,
        SearchContext<E, R> context,
        Route<E, R> beginNode)
{
    final Queue<Route<E, R>> nextNodes = new LinkedList<>();
    nextNodes.add(beginNode);

    Route<E, R> route;
    while ((route = nextNodes.poll()) != null) {
        for (Edge<E, R> edge : route.getLastNode().nextNodes()) {   //use stream.parallel();
            Route<E, R> newRoute = route.copy().add(edge).create();
            context.setLastRoute(newRoute);

            if (context.getNextRule().apply(newRoute)) {
                routes.add(newRoute);
                nextNodes.add(newRoute);
            }

            if (!context.getGlobalRule().apply(context)) {
                nextNodes.clear();
                return;
            }
        }
    }
}
 
源代码9 项目: egeria   文件: KafkaOpenMetadataEventConsumer.java
private void addUnprocessedEvent(int partition, String topic, KafkaIncomingEvent event) {
    if (isAutoCommitEnabled) {
        return;
    }
    TopicPartition key = new TopicPartition(topic, partition);
    Queue<KafkaIncomingEvent> queue = unprocessedEventQueues.get(key);
    if (queue == null) {
        queue = new SynchronizedQueue<>(new ArrayDeque<KafkaIncomingEvent>());
        synchronized (unprocessedEventQueues) {
            unprocessedEventQueues.put(key, queue);
        }
    }
    queue.add(event);
    
}
 
源代码10 项目: SoloPi   文件: AbstractNodeTree.java
private MIterator(AbstractNodeTree root) {
    mQueue = new LinkedList<>();

    Queue<AbstractNodeTree> tmpQueue = new LinkedList<>();
    tmpQueue.add(root);
    AbstractNodeTree current = null;

    while ((current = tmpQueue.poll()) != null) {
        mQueue.add(current);
        if (current.getChildrenNodes() != null && current.getChildrenNodes().size() > 0) {
            tmpQueue.addAll(current.getChildrenNodes());
        }
    }
}
 
源代码11 项目: Tomcat7.0.67   文件: ConcurrentMessageDigest.java
/**
 * Ensures that {@link #digest(String, byte[][])} will support the specified
 * algorithm. This method <b>must</b> be called and return successfully
 * before using {@link #digest(String, byte[][])}.
 *
 * @param algorithm The message digest algorithm to be supported
 *
 * @throws NoSuchAlgorithmException If the algorithm is not supported by the
 *                                  JVM
 */
public static void init(String algorithm) throws NoSuchAlgorithmException {
    synchronized (queues) {
        if (!queues.containsKey(algorithm)) {
            MessageDigest md = MessageDigest.getInstance(algorithm);
            Queue<MessageDigest> queue =
                    new ConcurrentLinkedQueue<MessageDigest>();
            queue.add(md);
            queues.put(algorithm, queue);
        }
    }
}
 
源代码12 项目: cloudbreak   文件: ResetFlowEventChainFactory.java
@Override
public Queue<Selectable> createFlowTriggerEventQueue(StackEvent event) {
    Queue<Selectable> flowEventChain = new ConcurrentLinkedQueue<>();
    flowEventChain.add(new StackEvent(CLUSTER_RESET_EVENT.event(), event.getResourceId(), event.accepted()));
    flowEventChain.add(new StartClusterSuccess(CLUSTER_INSTALL_EVENT.event(), event.getResourceId()));
    return flowEventChain;
}
 
private void putElementsInQ(Queue<Object> res, Queue<Object> partial) {
	for (Object o : partial) {
		if (o instanceof Watermark) {
			continue;
		}
		res.add(o);
	}
}
 
源代码14 项目: tutorials   文件: RouteFinder.java
public List<T> findRoute(T from, T to) {
    Map<T, RouteNode<T>> allNodes = new HashMap<>();
    Queue<RouteNode> openSet = new PriorityQueue<>();

    RouteNode<T> start = new RouteNode<>(from, null, 0d, targetScorer.computeCost(from, to));
    allNodes.put(from, start);
    openSet.add(start);

    while (!openSet.isEmpty()) {
        System.out.println("Open Set contains: " + openSet.stream().map(RouteNode::getCurrent).collect(Collectors.toSet()));
        RouteNode<T> next = openSet.poll();
        System.out.println("Looking at node: " + next);
        if (next.getCurrent().equals(to)) {
            System.out.println("Found our destination!");

            List<T> route = new ArrayList<>();
            RouteNode<T> current = next;
            do {
                route.add(0, current.getCurrent());
                current = allNodes.get(current.getPrevious());
            } while (current != null);

            System.out.println("Route: " + route);
            return route;
        }

        graph.getConnections(next.getCurrent()).forEach(connection -> {
            double newScore = next.getRouteScore() + nextNodeScorer.computeCost(next.getCurrent(), connection);
            RouteNode<T> nextNode = allNodes.getOrDefault(connection, new RouteNode<>(connection));
            allNodes.put(connection, nextNode);

            if (nextNode.getRouteScore() > newScore) {
                nextNode.setPrevious(next.getCurrent());
                nextNode.setRouteScore(newScore);
                nextNode.setEstimatedScore(newScore + targetScorer.computeCost(connection, to));
                openSet.add(nextNode);
                System.out.println("Found a better route to node: " + nextNode);
            }
        });
    }

    throw new IllegalStateException("No route found");
}
 
源代码15 项目: Paguro   文件: PersistentTreeMap.java
private void writeObject(ObjectOutputStream s) throws IOException {
            s.defaultWriteObject();

            // Serializing in iteration-order yields a worst-case deserialization because
            // without re-balancing (rotating nodes) such an order yields an completely unbalanced
            // linked list internal structure.
            //       4
            //      /
            //     3
            //    /
            //   2
            //  /
            // 1
            //
            // That seems unnecessary since before Serialization we might have something like this
            // which, while not perfect, requires no re-balancing:
            //
            //                    11
            //            ,------'  `----.
            //           8                14
            //        ,-' `-.            /  \
            //       4       9         13    15
            //    ,-' `-.     \       /        \
            //   2       6     10   12          16
            //  / \     / \
            // 1   3   5   7
            //
            // If we serialize the middle value (n/2) first.  Then the n/4 and 3n/4,
            // followed by n/8, 3n/8, 5n/8, 7n/8, then n/16, 3n/16, etc.  Finally, the odd-numbered
            // values last.  That gives us the order:
            // 8, 4, 12, 2, 6, 10, 14, 1, 3, 5, 7, 9, 11, 13, 15
            //
            // Deserializing in that order yields an ideally balanced tree without any shuffling:
            //               8
            //        ,-----' `-------.
            //       4                 12
            //    ,-' `-.          ,--'  `--.
            //   2       6       10          14
            //  / \     / \     /  \        /  \
            // 1   3   5   7   9    11    13    15
            //
            // That would be ideal, but I don't see how to do that without a significant
            // intermediate data structure.
            //
            // A good improvement could be made by serializing breadth-first instead of depth first
            // to at least yield a tree no worse than the original without requiring shuffling.
            //
            // This improvement does not change the serialized form, or break compatibility.
            // But it has a superior ordering for deserialization without (or with minimal)
            // rotations.

//            System.out.println("Serializing tree map...");
            if (theMap.tree != null) {
                Queue<Node<K,V>> queue = new ArrayDeque<>();
                queue.add(theMap.tree);
                while (queue.peek() != null) {
                    Node<K,V> node = queue.remove();
//                    System.out.println("Node: " + node);
                    s.writeObject(node.getKey());
                    s.writeObject(node.getValue());
                    Node<K,V> child = node.left();
                    if (child != null) {
                        queue.add(child);
                    }
                    child = node.right();
                    if (child != null) {
                        queue.add(child);
                    }
                }
            }
//            for (UnEntry<K,V> entry : theMap) {
//                s.writeObject(entry.getKey());
//                s.writeObject(entry.getValue());
//            }
        }
 
源代码16 项目: unitime   文件: CurriculaRequestsCourseDemands.java
protected void computeTargetShare(CurriculumClassification clasf, Collection<CurriculumCourse> courses, CurriculumCourseGroupsProvider course2groups,int nrStudents, double factor, double w, CurModel model) {
	for (CurriculumCourse c1: courses) {
		double x1 = model.getCourse(c1.getCourse().getUniqueId()).getOriginalMaxSize();
		Set<CurriculumCourse>[] group = new HashSet[] { new HashSet<CurriculumCourse>(), new HashSet<CurriculumCourse>()};
		Queue<CurriculumCourse> queue = new LinkedList<CurriculumCourse>();
		queue.add(c1);
		Set<CurriculumCourseGroup> done = new HashSet<CurriculumCourseGroup>();
		while (!queue.isEmpty()) {
			CurriculumCourse c = queue.poll();
			for (CurriculumCourseGroup g: course2groups.getGroups(c))
				if (done.add(g))
					for (CurriculumCourse x: courses)
						if (!x.equals(c) && !x.equals(c1) && course2groups.getGroups(x).contains(g) && group[group[0].contains(c) ? 0 : g.getType()].add(x))
							queue.add(x);
		}
		for (CurriculumCourse c2: courses) {
			double x2 = model.getCourse(c2.getCourse().getUniqueId()).getOriginalMaxSize();
			boolean opt = group[0].contains(c2);
			boolean req = !opt && group[1].contains(c2);
			double defaultShare = (opt ? 0.0 : req ? Math.min(x1, x2) : c1.getPercShare() * c2.getPercShare() * nrStudents);
			if (c1.getUniqueId() >= c2.getUniqueId()) continue;
			double share = defaultShare;
			Set<WeightedStudentId> s1 = iStudentCourseRequests.getDemands(c1.getCourse());
			Set<WeightedStudentId> s2 = iStudentCourseRequests.getDemands(c2.getCourse());
			int sharedStudents = 0, registered = 0;
			if (s1 != null && !s1.isEmpty() && s2 != null && !s2.isEmpty()) {
				for (WeightedStudentId s: s1) {
					if (s.match(clasf)) {
						registered ++;
						if (s2.contains(s)) sharedStudents ++;
					}
				}
			}
			if (registered == 0) {
				share = (1.0 - w) * defaultShare;
			} else {
				share = w * (x1 / registered) * sharedStudents + (1.0 - w) * defaultShare;
			}
			model.setTargetShare(c1.getCourse().getUniqueId(), c2.getCourse().getUniqueId(), share, false);
		}
	}
}
 
源代码17 项目: pengyifan-leetcode   文件: WordLadder2.java
public List<List<String>> findLadders(String start, String end,
    Set<String> dict) {
  if (start == null || end == null) {
    return Collections.emptyList();
  }

  dict.add(start);
  dict.add(end);
  Map<String, Set<String>> neighbours = createNeighbours(dict);

  List<List<String>> solutions = new ArrayList<List<String>>();

  // BFS search queue
  Queue<Node> queue = new LinkedList<Node>();
  queue.offer(new Node(null, start, 1));

  // BFS level
  int previousLevel = 0;
  // mark which nodes have been visited, to break infinite loop
  Map<String, Integer> visited = new HashMap<String, Integer>();
  while (!queue.isEmpty()) {
    Node n = queue.poll();
    if (end.equals(n.str)) {
      // fine one path, check its length, if longer than previous path it's
      // valid
      // otherwise all possible short path have been found, should stop
      if (previousLevel == 0 || n.level == previousLevel) {
        previousLevel = n.level;
        findPath(n, solutions);
      } else {
        // all path with length *previousLevel* have been found
        break;
      }
    } else {
      Set<String> neighbour = neighbours.get(n.str);
      if (neighbour == null || neighbour.isEmpty()) {
        continue;
      }
      Set<String> toRemove = new HashSet<String>();
      for (String word : neighbour) {
        // if word has been visited before at a smaller level, there is
        // already
        // a shorter path from start to word thus we should ignore word so as
        // to
        // break infinite loop; if on the same level, we still need to put it
        // into queue.
        if (visited.containsKey(word)) {
          if (n.level + 1 > visited.get(word)) {
            neighbours.get(word).remove(n.str);
            toRemove.add(word);
            continue;
          }
        }
        visited.put(word, n.level + 1);
        queue.add(new Node(n, word, n.level + 1));
        neighbours.get(word).remove(n.str);
      }
      neighbour.removeAll(toRemove);
    }
  }

  return solutions;
}
 
源代码18 项目: openjdk-jdk8u   文件: JavaCompiler.java
/**
 * Perform dataflow checks on an attributed parse tree.
 */
protected void flow(Env<AttrContext> env, Queue<Env<AttrContext>> results) {
    if (compileStates.isDone(env, CompileState.FLOW)) {
        results.add(env);
        return;
    }

    try {
        if (shouldStop(CompileState.FLOW))
            return;

        if (relax) {
            results.add(env);
            return;
        }

        if (verboseCompilePolicy)
            printNote("[flow " + env.enclClass.sym + "]");
        JavaFileObject prev = log.useSource(
                                            env.enclClass.sym.sourcefile != null ?
                                            env.enclClass.sym.sourcefile :
                                            env.toplevel.sourcefile);
        try {
            make.at(Position.FIRSTPOS);
            TreeMaker localMake = make.forToplevel(env.toplevel);
            flow.analyzeTree(env, localMake);
            compileStates.put(env, CompileState.FLOW);

            if (shouldStop(CompileState.FLOW))
                return;

            results.add(env);
        }
        finally {
            log.useSource(prev);
        }
    }
    finally {
        if (!taskListener.isEmpty()) {
            TaskEvent e = new TaskEvent(TaskEvent.Kind.ANALYZE, env.toplevel, env.enclClass.sym);
            taskListener.finished(e);
        }
    }
}
 
源代码19 项目: ambry   文件: RouterServerSSLTest.java
/**
 * Test that the non blocking router can handle a large number of concurrent (small blob) operations without errors.
 * This test creates chains of operations without waiting for previous operations to finish.
 * @throws Exception
 */
@Test
public void interleavedOperationsTest() throws Exception {
  List<OperationChain> opChains = new ArrayList<>();
  Random random = new Random();
  for (int i = 0; i < 20; i++) {
    Queue<OperationType> operations = new LinkedList<>();
    switch (i % 3) {
      case 0:
        operations.add(OperationType.PUT);
        operations.add(OperationType.AWAIT_CREATION);
        operations.add(OperationType.GET_AUTHORIZATION_FAILURE);
        operations.add(OperationType.GET);
        operations.add(OperationType.GET_INFO);
        operations.add(OperationType.TTL_UPDATE);
        operations.add(OperationType.AWAIT_TTL_UPDATE);
        operations.add(OperationType.GET);
        operations.add(OperationType.GET_INFO);
        operations.add(OperationType.DELETE);
        operations.add(OperationType.AWAIT_DELETION);
        operations.add(OperationType.GET_DELETED);
        operations.add(OperationType.GET_INFO_DELETED);
        operations.add(OperationType.GET_DELETED_SUCCESS);
        operations.add(OperationType.GET_INFO_DELETED_SUCCESS);
        operations.add(OperationType.UNDELETE);
        operations.add(OperationType.AWAIT_UNDELETE);
        operations.add(OperationType.GET);
        operations.add(OperationType.GET_INFO);
        break;
      case 1:
        operations.add(OperationType.PUT);
        operations.add(OperationType.AWAIT_CREATION);
        operations.add(OperationType.DELETE_AUTHORIZATION_FAILURE);
        operations.add(OperationType.DELETE);
        operations.add(OperationType.AWAIT_DELETION);
        operations.add(OperationType.GET_DELETED);
        operations.add(OperationType.GET_INFO_DELETED);
        operations.add(OperationType.GET_DELETED);
        operations.add(OperationType.GET_INFO_DELETED);
        operations.add(OperationType.GET_DELETED_SUCCESS);
        operations.add(OperationType.GET_INFO_DELETED_SUCCESS);
        break;
      case 2:
        operations.add(OperationType.PUT);
        operations.add(OperationType.AWAIT_CREATION);
        operations.add(OperationType.GET);
        operations.add(OperationType.GET);
        operations.add(OperationType.GET_AUTHORIZATION_FAILURE);
        operations.add(OperationType.GET);
        operations.add(OperationType.GET_INFO);
        operations.add(OperationType.TTL_UPDATE);
        operations.add(OperationType.AWAIT_TTL_UPDATE);
        operations.add(OperationType.GET);
        operations.add(OperationType.GET_INFO);
        break;
    }
    int blobSize = random.nextInt(100 * 1024);
    opChains.add(testFramework.startOperationChain(blobSize, null, i, operations));
  }
  testFramework.checkOperationChains(opChains);
}
 
public static Destination[][] getMap() {
    final RSTile home = Player.getPosition().toLocalTile();
    Destination[][] map = new Destination[104][104];
    int[][] collisionData = PathFinding.getCollisionData();
    if(collisionData == null || collisionData.length < home.getX() || collisionData[home.getX()].length < home.getY()){
        return map;
    }

    Queue<Destination> queue = new LinkedList<>();
    queue.add(new Destination(home, null, 0));
    map[home.getX()][home.getY()] = queue.peek();

    while (!queue.isEmpty()) {
        Destination currentLocal = queue.poll();

        int x = currentLocal.getLocalTile().getX(), y = currentLocal.getLocalTile().getY();
        Destination destination = map[x][y];

        for (Reachable.Direction direction : Reachable.Direction.values()) {
            if (!direction.isValidDirection(x, y, collisionData)) {
                continue; //Cannot traverse to tile from current.
            }

            RSTile neighbor = direction.getPointingTile(currentLocal.getLocalTile());
            int destinationX = neighbor.getX(), destinationY = neighbor.getY();

            if (!AStarNode.isWalkable(collisionData[destinationX][destinationY])) {
                continue;
            }

            if (map[destinationX][destinationY] != null) {
                continue; //Traversed already
            }

            map[destinationX][destinationY] = new Destination(neighbor, currentLocal, destination.getDistance() + 1);
            queue.add(map[destinationX][destinationY]);
        }

    }
    return map;
}