Java检查语句以获取语句首次执行的价值


HashMap intermediateIdMap = new HashMap(d_idMap.size());
    int     linkCounter       = 0;
    for (Iterator it = d_idMap.entrySet().iterator(); it.hasNext(); )
    {
        Map.Entry me    = ((Map.Entry) it.next());
        long      oldId = (Long) me.getKey();
        MapObject mo    = d_mc.findMapObject(oldId);
        if (mo != null && !isMetaDataType(mo)
                && (IdSpace.isTransient(mo.id()) || d_updateAllIds
                        || isNegativeIdUpdate(mo.id())))
        {
            int transientId = d_idGenerator.getNewId();

我需要在第一次执行第一个transientID及其设置的ID时以及最后一个ID(即min_transient和max_transient

(时获得第一个瞬态。

我尝试将数据结构更改为LinkedHashmap,这本来可以给我第一个和最后一个元素,但我想老年人不想让我更改DS,你们帮助我找到另一种方式

public synchronized int getNewId()
{
    // Contract.precondition("Within range", d_currentId <= d_range);
    // CMSDL-3988 - recycle/reset the currentId once max reached
    if(d_currentId>d_range)
        d_currentId=MIN_TRANSIENT;
    return d_currentId++;
}

如果您需要更改是有原因的,则应允许您进行。

否则,您需要围绕代码的一些结构,例如

boolean firstValueSeen = false;
int firstValue = -1;
for (…) {
        …
            int transientId = d_idGenerator.getNewId();
            firstValueSeen = true;
            firstValue = transientId

最新更新