MCPcopy Create free account
hub / github.com/e2wugui/zeze / push

Method push

ZezeJava/ZezeJava/src/main/java/Zeze/Collections/Queue.java:333–353  ·  view source on GitHub ↗

用作stack, 值追加到头节点的首位, 满则追加一个头节点

(V value)

Source from the content-addressed store, hash-verified

331 * 用作stack, 值追加到头节点的首位, 满则追加一个头节点
332 */
333 public void push(V value) {
334 var root = getOrAddRoot();
335 var headNodeKey = root.getHeadNodeKey();
336 var head = headNodeKey.getNodeId() != 0 ? getNode(headNodeKey) : null;
337 if (head == null || head.getValues().size() >= nodeSize) {
338 var newNodeId = root.getLastNodeId() + 1;
339 root.setLastNodeId(newNodeId);
340 var newNodeKey = new BQueueNodeKey(name, newNodeId);
341 root.setHeadNodeKey(newNodeKey);
342 if (root.getTailNodeKey().getNodeId() == 0)
343 root.setTailNodeKey(newNodeKey);
344 module._tQueueNodes.insert(newNodeKey, head = new BQueueNode());
345 root.setCount(root.getCount() + 1);
346 if (headNodeKey.getNodeId() != 0)
347 head.setNextNodeKey(headNodeKey);
348 }
349 var nodeValue = new BQueueNodeValue();
350 nodeValue.setTimestamp(System.currentTimeMillis());
351 nodeValue.getValue().setBean(value);
352 head.getValues().add(0, nodeValue);
353 }
354
355 /**
356 * 删除并返回头节点中的首个值

Callers 11

test4_QueuePushMethod · 0.45
aFunction · 0.45
tFunction · 0.45
app.c4eb8aac.jsFile · 0.45

Calls 15

getOrAddRootMethod · 0.95
getNodeMethod · 0.95
setTimestampMethod · 0.95
getValueMethod · 0.95
setHeadNodeKeyMethod · 0.80
setTailNodeKeyMethod · 0.80
setNextNodeKeyMethod · 0.80
getHeadNodeKeyMethod · 0.65
getNodeIdMethod · 0.65
sizeMethod · 0.65
getLastNodeIdMethod · 0.65
getTailNodeKeyMethod · 0.65

Tested by 1

test4_QueuePushMethod · 0.36